当前位置: 数据库>mysql
mysql仿oracle的decode效果查询
来源: 互联网 发布时间:2014-09-06
本文导语: 以下代码在MYSQL中测试通过,MSSQL应该能跑通,未测试。 代码如下: #创建表如下 create temporary table tmp (a int, b int ,c int); insert into tmp VALUES (1,10,1),(10,10,2),(10,100,2); #mysql执行 select sum(case when c = '1' then A else B end) from tmp #oracle执行 sele...
以下代码在MYSQL中测试通过,MSSQL应该能跑通,未测试。
代码如下:
#创建表如下
create temporary table tmp (a int, b int ,c int);
insert into tmp VALUES (1,10,1),(10,10,2),(10,100,2);
#mysql执行
select sum(case when c = '1' then A else B end) from tmp
#oracle执行
select sum(decode(c,'1',a,b)) from tmp
#普通联合查询
select sum(d) from
(
select a as d from tmp where c=1
union
select b as d from tmp where c=2
)