我想在表中的某个字段不为空时从表中选择特定的列。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