91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

case 函數語法與使用

發布時間:2020-07-15 10:47:22 來源:網絡 閱讀:2027 作者:靜水流深li 欄目:軟件技術

case 函數是聚合函數的一種,為統計函數。

case表達式:

CASE  selector   
   WHEN value1 THEN action1;    
   WHEN value2 THEN action2;    
   WHEN value3 THEN action3

 

一、CASE WHEN 表達式有兩種形式

(1)簡單Case函數 

CASE  sex  
WHEN '1' THEN '男'  
WHEN '2' THEN '女'  
ELSE '其他' END

 

(2)Case搜索函數  

CASE   
WHEN sex = '1' THEN '男'  
WHEN sex = '2' THEN '女'  
ELSE '其他' END

本篇文章未講解關于case 搜索函數用法。


二、CASE WHEN 應用

學生性別統計student表:

case 函數語法與使用

 

------------查詢表中所有的性別

select  ID,   
     (case sex     
     when '1' then '男'    
     when '2' then '女'   
     ELSE 'null'    
     END) AS  '性別',    
     province as '省份'    
from `student`   ORDER BY `ID` ASC ;

查詢結果如下:

case 函數語法與使用

 

-------------查詢江蘇省與浙江省男生與女生個數分別是多少。

case 函數語法與使用

第一種計算方法:以省份區分

select province AS '江蘇省',   
        COUNT(case sex when '男' THEN  '男'              
        ELSE  null END ) AS  '男生',    
        COUNT(case sex                   
              when '女' THEN '女' 
              ELSE  null END ) AS  '女生'    
from student where `province` ='江蘇'
UNION
select province AS '江蘇省',   
        COUNT(case sex  when '男' THEN  '男'                   
        ELSE  null END ) AS  '男生',    
        COUNT(case sex                   
        when '女' THEN  '女'                   
        ELSE  null END ) AS  '女生'    
from `student`  where `province` ='浙江'

查詢結果如下:

case 函數語法與使用

 

第二種計算:以性別區分

select sex,           
        COUNT(case province                  
        when '江蘇' THEN  '江蘇'                   
        ELSE  null END ) AS  '江蘇省',
    COUNT(case province                  
    when '浙江' THEN  '浙江'                   
    ELSE  null END ) AS  '浙江省'    
from  `student` group by  `sex` ;

查詢結果如下:

case 函數語法與使用   

  

注意:

COUNT(case province   
   when '江蘇' THEN  '江蘇'     
   ELSE  null END ) AS  '江蘇省',

 

可以簡寫成:

COUNT( case province when '江蘇' THEN  '江蘇' END ) AS '江蘇省'


----------查詢各省份的男女數量

select province ,   
    sex,    
    COUNT(*) AS  '總數'    
from  student  GROUP BY province ,sex;

查詢結果如下:

case 函數語法與使用    

 

----------只統計了浙江省的男女數目    

select  
     sex ,    
     province,     
     count(case province when '江蘇' then '江蘇' end )as '數量'     
from student group by province, sex;

查詢結果如下:

case 函數語法與使用    

當數據較多時,使用以上數據查詢占用大量的資源,因此可以簡單寫成以下形式:

select  sex as '性別' ,   
         count(case province when '江蘇' then '江蘇' end )as '浙江省'     
from student group by sex;

查詢結果如下:

case 函數語法與使用

 

補充:

(1)select (case province
             when '浙江' then '浙江'
             when '江蘇' then '江蘇'
             else province end  ) as 省份 from student;

 
else province 默認為除浙江、江蘇 外顯示其他城市

case 函數語法與使用


(2) case when  可以跟不相等的判斷。

    可用于=,>=,<,<=,<>,is null,is not null 等的判斷。

如:

case 函數語法與使用


 

三、CASE WHEN 與 DECODE 比較

1,DECODE  Oracle 特有;    
2,CASE WHEN  Oracle ,  SQL Server,  MySQL 都可用;    
3,DECODE 只能用做相等判斷,但是可以配合sign函數進行大于,小于,等于的判斷,

  CASE 可用于=,>=,<,<=,<>,is null,is not null 等的判斷;

4,DECODE 使用其來比較簡潔,CASE 雖然復雜但更為靈活;


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家口市| 铜鼓县| 寿宁县| 兰坪| 独山县| 绥德县| 花莲县| 阜康市| 龙陵县| 肥东县| 石景山区| 巴彦淖尔市| 延安市| 荆门市| 枣强县| 巴东县| 遵义市| 疏勒县| 南阳市| 凤山县| 囊谦县| 松桃| 五原县| 青冈县| 安庆市| 松滋市| 安丘市| 南郑县| 改则县| 连州市| 濮阳县| 开原市| 花莲市| 长垣县| 沈阳市| 三都| 尼玛县| 梧州市| 扎赉特旗| 乌什县| 洞头县|