当前位置: 代码迷 >> Oracle开发 >> 某表根据一个flag字段的值,取该表不同字段的sql如何写
  详细解决方案

某表根据一个flag字段的值,取该表不同字段的sql如何写

热度:24   发布时间:2016-04-24 06:40:53.0
【求助】某表根据一个flag字段的值,取该表不同字段的sql怎么写
譬如

表A,有字段flag,和字段a,b,c,d,e,f

当flag=‘1’,取出字段a,b,c
其他情况,取出字段d,e,f
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

譬如

表A,有字段flag,和字段a,b,c,d,e,f

当flag=‘1’,取出字段a,b,c
其他情况,取出字段d,e,f



with t as
 (select 1 flag, 1 a, 2 b, 3 c, 4 d, 5 e, 6 f
    from dual
  union all
  select 2 flag, 1 a, 2 b, 3 c, 4 d, 5 e, 6 f
    from dual)
select decode(flag, 1, a, b), decode(flag, 1, c, d), decode(flag, 1, e, f)
  from t;


这么搞太复杂了,还是老实写两条查询吧。。。


with t as
 (select 1 flag, 1 a, 2 b, 3 c, 4 d, 5 e, 6 f
    from dual
  union all
  select 2 flag, 1 a, 2 b, 3 c, 4 d, 5 e, 6 f
    from dual)
这部分时测试数据,你不用管,
这个才是你要用的SQL:
select decode(flag, 1, a, b), decode(flag, 1, c, d), decode(flag, 1, e, f)
  from t;
  相关解决方案