我有一行应在某些情况下重复。 示例:
情况1:
a b c d e
---------------
1 4 25 10 NULL
如果e为Null,则显示a,b和c:
1 4 25
情况2:
a b c d e
---------------
1 4 25 10 55
如果e不为Null,则重复该行
1 4 25
=>列a,b,c
1 4 10
=>列a,b,d
答案 0 :(得分:3)
使用此查询
使用联合可以实现此用例
select a,b,c from table
union all
select a,b,d from table where e is not null
答案 1 :(得分:1)
如果您不想两次扫描表格,则可以使用cross join
和一些逻辑:
select a, b,
(case when n = 1 then c else d end)
from t cross join
(select 1 as n union all select 2) n
where n = 1 or
(n = 2 and e is not null);