在同一行,我有愚蠢的数据
我有专栏aCust, bCust, aPart, bPart, aSM, bSM, aSales, bSales.
我希望将Cust
组合在一起,parts
和SM
组合在一起,同时保持Sales
分开。有些行在a和b中都有数据,有些a是空的,有些b是空的。我该如何结合这个?如果a和b中都有数据,则它始终相同(销售除外)。
答案 0 :(得分:1)
尝试此查询。它看起来很奇怪但会完成这项工作。您没有指定您正在使用的RDBMS(Oracle,MySQL,SQL Server等)。这就是为什么我没有使用ISNULL
之类的东西。
select
case when aCust is null then bCust else bCust end as Cust,
case when aPart is null then bPart else bPart end as Part,
case when aSM is null then bSM else bSM end as SM,
aSales, bSales
from
tbl
答案 1 :(得分:0)
您可以使用coalesce()
:
select coalesce(aCust, bCust) as Cust,
coalesce(aPart, bPart) as Part,
coalesce(aSM, bSM) as SM,
aSales, bSales
from table;
这将为每个字段选择第一个非NULL值。