如何使用MySQL在同一特定的列上显示两次行?

时间:2019-07-17 10:25:47

标签: mysql sql database

我有一行应在某些情况下重复。 示例:

情况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

2 个答案:

答案 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);