oracle case when及decode的用法


case ... when 语句
  1) CASE column_name WHEN value1 THEN resutl1,... [ ELSE result ] END
    select name ,

       case name when 'aaa' then '计算机部门'
              when 'bbb' then '市场部门' ELSE '其他部门' END AS 部门
    from users;

    输出结果:
      姓名 部门
      ---------- ----------
      aaa 计算机部门
      bbb 市场部门
      ccc 其他部门

 

2) CASE
  WHEN column_name=value1 THEN result1,...[ELSE result] END

  eg. 1
    select name ,

       case when name ='aaa' then '计算机部门'
          when name = 'bbb' then '市场部门' else '其他部门' END AS 部门

    from users;

    输出结果:
      姓名 部门
      ---------- ----------
      aaa 计算机部门
      bbb 市场部门
      ccc 其他部门

 

  eg 2.
    select salary,

       case when salary > 5000 then '工资高'
          when salary < 1000 then '工资低' end AS 工资水平
    from users;
    输出结果:

      SALARY 工资水
      ---------- ------
      800 工资低
      1800.5
      5000.5 工资高
      1000

 

decode的作用和case的作用一样
decode(column_name, value1,result1,....defaultvalue)

  eg.
    SQL> select name,decode(name,'aaa','计算机部门','bbb','市场部门','其他') as 部门 from users;

    输出结果:

      姓名 部门
      ---------- ----------
      aaa 计算机部门
      bbb 市场部门
      ccc 其他
      aaa 计算机部门

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM