2015-01-31 46 views
1

我有表列:编写一个查询来从一个记录两条记录基于一些条件

  • FLAG1
  • FLAG 2
  • flag1_column1
  • flag1_column2
  • flag1_column3
  • flag2_column1
  • flag2_column2
  • flag2_column3

我的要求是:

  • 如果同时flag1flag2有值true,则在结果,我应该得到两个记录:

    1. flag1, flag1_column1, flag1_column2, flag1_column3
    2. flag2, flag2_column1, flag2_column2, flag2_column3

我的第二个要求:

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

flag2 ,flag2_column1, flag2_column2, flag2_column3 

我的第三个要求:

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

flag1 , flag1_column1, flag1_column2, flag1_column3 
+0

如果他们俩都是空/ 0? – 2015-01-31 22:49:57

+0

它不能为空。所以总是0或1 – Amrik 2015-02-02 19:14:12

回答

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 
相关问题