我有列表:
我的要求是:
如果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
答案 0 :(得分:2)
这是返回所需结果的查询:
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