我想在表中的某個字段不爲空時從表中選擇特定的列。SQL - 案例中的Select語句
換句話說,我有兩個表,它們具有共同的字段,所以當表1中字段名爲「salesordrkey」的字符不爲空時,我需要從表2中獲取公共字段,否則從表中獲取公共字段1號
這裏就是我想要做什麼
Select slsordr.salesordrkey,
whissue.warehissuekey,
issuppk.issueprodpackkey,
(Case When whissue.salesordrkey Is Not Null Then
(Select slsordr.busipartnerkey,
slsordr.contractkey,
slsordr.salesmankey,
slsordr.customerkey)
Else
(Select whissue.busipartnerkey,
whissue.contractkey,
whissue.salesmankey,
slsordr.customerkey)
End)
From warehissues whissue
Inner Join issueprodpacks issuppk on whissue.warehissuekey = issuppk.warehissuekey
Left Join slssalesordrs slsordr on whissue.salesordrkey = slsordr.salesordrkey
Where
whissue.partitionkey = @prtnkey and
issuppk.prodpackkey = @prodpackkey
但這並沒有工作..是否有任何其他的方式來實現這一目標?
你可能會更好地分享表結構以及問題。鑑於問題中的內容,您是否考慮過使用其他連接以及條件? – danish
首先,當你聲明一個SELECT時,你必須聲明從哪裏選擇FROM。其次,你可以選擇4列成一個,你必須爲每一個情況。最後,你已經加入了桌子,所以第二張桌子上的信息是可以訪問的,你不必再次選擇任何東西,只是使用你得到的信息。 – sagi
一個case表達式返回一個簡單的值,你試着返回4個值。 – jarlh