编写查询以根据某些条件从一条记录生成两条记录

writing a query to to generate two records from one record based on some condition

我有 table 列:

我的要求是:

我的第二个要求:

如果 flag1null0 那么我应该只得到一个记录:

flag2 ,flag2_column1, flag2_column2, flag2_column3 

我的第三个要求:

如果 flag2null0 那么我应该只得到一个记录:

flag1 , flag1_column1, flag1_column2, flag1_column3

这是 returns 所需结果的查询:

select flag1 as flag,
       flag1_column1 as c1, 
       flag1_column2 as c2, 
       flag1_column3 as c3 
from t where flag1=1
union
select flag2 as flag,
       flag2_column1 as c1, 
       flag2_column2 as c3, 
       flag2_column3 as c3 
from t where flag2=1