编写查询以根据某些条件从一条记录生成两条记录
writing a query to to generate two records from one record based on some condition
我有 table 列:
- 标志 1
- flag2
- flag1_column1
- flag1_column2
- flag1_column3
- flag2_column1
- flag2_column2
- flag2_column3
我的要求是:
如果 flag1
和 flag2
都具有值 true 那么结果我应该得到两条记录:
flag1, flag1_column1, flag1_column2, flag1_column3
flag2, flag2_column1, flag2_column2, flag2_column3
我的第二个要求:
如果 flag1
是 null
或 0
那么我应该只得到一个记录:
flag2 ,flag2_column1, flag2_column2, flag2_column3
我的第三个要求:
如果 flag2
是 null
或 0
那么我应该只得到一个记录:
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
我有 table 列:
- 标志 1
- flag2
- flag1_column1
- flag1_column2
- flag1_column3
- flag2_column1
- flag2_column2
- flag2_column3
我的要求是:
如果
flag1
和flag2
都具有值 true 那么结果我应该得到两条记录:flag1, flag1_column1, flag1_column2, flag1_column3
flag2, flag2_column1, flag2_column2, flag2_column3
我的第二个要求:
如果 flag1
是 null
或 0
那么我应该只得到一个记录:
flag2 ,flag2_column1, flag2_column2, flag2_column3
我的第三个要求:
如果 flag2
是 null
或 0
那么我应该只得到一个记录:
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