我有一个查询从多个表中获取结果:
Select
TA.C1 as ColumnA, TB.C1 as ColumnB, TC.C1 as ColumnC
from
TableA TA, TableB TB, TableC TC
where
--Business Conditions
获取的结果如下:
是否希望结果在一个单独的columnD中获取,该列具有ColumnA的每个对应值的值,例如:
PS:如果不为null,则ColumnB的值优先于ColumnC的值(例如Row 4
)
有人可以建议实现这个目标的方法吗?
答案 0 :(得分:3)
您可以使用Coalesce运算符。
Select TA.C1 as ColumnA,
COALESCE(TB.C1, TC.C1) as ColumnB
from TableA TA, TableB TB, TableC TC
答案 1 :(得分:0)
我认为,你应该在select子句中尝试使用case。
下面给出的代码应该给出一个粗略的想法,它没有经过测试。
Select TA.C1 as ColumnA,
case
when TB.C1 is not NULL THEN TB.C1
when TC.C1 is not NULL THEN TC.C1
end "Column D"