mysql仿oracle的decode效果查询

  • A+
所属分类:数据库

今天遇到群里发的一个问题,觉得有点意思,发上来看一下

mysql仿oracle的decode效果查询

以下代码在MYSQL中测试通过,MSSQL应该能跑通,未测试。

  1. #创建表如下
  2. create temporary table tmp (a int, b int ,c int);
  3. insert into tmp VALUES (1,10,1),(10,10,2),(10,100,2);
  4. #mysql执行
  5. select sum(case when c = '1' then A else B end) from tmp
  6. #oracle执行
  7. select sum(decode(c,'1',a,b)) from tmp
  8. #普通联合查询
  9. select sum(d) from
  10. (
  11. select a as d from tmp where c=1
  12. union
  13. select b as d from tmp where c=2
  14. )
图片引用自网络