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