這篇文章將為大家詳細講解有關SQL中case when怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
目前創新互聯已為1000+的企業提供了網站建設、域名、虛擬主機、網站托管維護、企業網站設計、黔西南州網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
SQL中case when的用法
Case具有兩種格式:簡單Case函數和Case搜索函數。
簡單Case函數:
CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘0’ THEN ‘女’ ELSE ‘其他’ END
Case搜索函數:
CASE WHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘0’ THEN ‘女’ ELSE ‘其他’ END
顯然,簡單Case函數勝在簡潔,但是它只適用于這種單字段的單值比較,而Case搜索函數的優點在于適用于所有比較的情況。
還有一個需要注意的問題,Case函數在滿足了某個符合條件后,剩下的條件將會被自動忽略,因此,即使滿足多個條件,執行過程中也只認第一個條件。
在使用 CASE WHEN時,可以把它當作一個邏輯上的匿名字段,字段值根據條件確認,在需要使用字段名時可以是用 as來定義別名。這么說還很抽象,看看下面 CASE WHEN的使用案例就清楚了。
使用場景
1、可以將已知數據按照某種方式進行分組,分析。
根據這個國家人口數據,統計亞洲和北美洲的人口數量。使用如下 SQL:
SELECT CASE country WHEN '中國' THEN '亞洲' WHEN '印度' THEN '亞洲' WHEN '日本' THEN '亞洲' WHEN '美國' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END as '洲' , SUM(population) as '人口' FROM test GROUP BY CASE country WHEN '中國' THEN '亞洲' WHEN '印度' THEN '亞洲' WHEN '日本' THEN '亞洲' WHEN '美國' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END;
這里的兩個CASE WHEN都相當于一個字段,不過值得一提的是,第二個CASE WHEN 的THEN值并不用寫明是什么洲,它只是用于將記錄進行分組,所以THEN后面的值只有能區分這三種記錄就行,GROUP BY也可以寫成:
GROUP BY CASE country WHEN '中國' THEN 0 WHEN '印度' THEN 0 WHEN '日本' THEN 0 WHEN '美國' THEN 1 WHEN '加拿大' THEN 1 WHEN '墨西哥' THEN 1 ELSE 2 END;
2、用一個SQL語句完成不同條件的分組。
有如下數據:
用Case函數來完成按照國家和性別進行分組。使用如下SQL:
SELECT country, SUM( CASE WHEN sex = '1' THEN population ELSE 0 END ), --男性人口 SUM( CASE WHEN sex = '2' THEN population ELSE 0 END ) --女性人口 FROM Table_A GROUP BY country;
得到如下結果:
就第一個CASE WHEN講解:
CASE WHEN sex = '1' THEN population ELSE 0 END
當記錄的sex為1時,這個字段的值為記錄的population值,否則為0,因此能計算出一個國家的男性人口。
關于“SQL中case when怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
分享名稱:SQL中casewhen怎么用
當前地址:http://m.2m8n56k.cn/article40/jdcgeo.html
成都網站建設公司_創新互聯,為您提供移動網站建設、面包屑導航、品牌網站設計、Google、網站導航、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯