Oracle CASE WHEN 用法介紹

1. CASE WHEN 表達式有兩種形式

複製代碼

 sex  
     
     
    



 sex      
 sex

複製代碼

 

2. CASE WHEN 在語句中不同位置的用法

2.1 SELECT CASE WHEN 用法

複製代碼

   grade,  (  sex          
                        
                       ) 男生數,
                 (  sex    
                        
                       ) 女生數
     students   grade;

複製代碼

 

2.3 WHERE CASE WHEN 用法

複製代碼

 T2., T1.
    T1, T2
   (  T2.COMPARE_TYPE   
                   T1.SOME_TYPE  
                 
               T2.COMPARE_TYPE   
                   T1.SOME_TYPE   
                 
               
           )

複製代碼

 

2.4 GROUP BY CASE WHEN 用法

複製代碼

  
  salary      
 salary    salary       
 salary    salary       
 salary    salary      
   salary_class, ()  
    Table_A  
   
  salary      
 salary    salary       
 salary    salary       
 salary    salary      
  ;

複製代碼

 

3.關於IF-THEN-ELSE的其他實現

3.1 DECODE() 函數

 decode(sex, , , , , )
   employees;

貌似只有Oracle提供該函數,而且不支持ANSI SQL,語法上也沒CASE WHEN清晰,個人不推薦使用。

3.2 在WHERE中特殊實現

 T2., T1.
    T1, T2
   (T2.COMPARE_TYPE    T1.SOME_TYPE  )
         
        (T2.COMPARE_TYPE    T1.SOME_TYPE   )

這種方法也是在特殊情況下使用,要多注意邏輯,不要弄錯。

轉載自:http://www.cnblogs.com/eshizhan/archive/2012/04/06/2435493.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章