溫馨提示×

溫馨提示×

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

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

SQL中case when怎么用

發布時間:2021-01-15 10:09:08 來源:億速云 閱讀:225 作者:小新 欄目:數據庫

這篇文章將為大家詳細講解有關SQL中case when怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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中case when怎么用

根據這個國家人口數據,統計亞洲和北美洲的人口數量。使用如下 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;

SQL中case when怎么用

這里的兩個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語句完成不同條件的分組。

有如下數據:

SQL中case when怎么用

用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;

得到如下結果:

SQL中case when怎么用

就第一個CASE WHEN講解:

CASE WHEN sex = '1' THEN
population ELSE 0 END

當記錄的sex為1時,這個字段的值為記錄的population值,否則為0,因此能計算出一個國家的男性人口。

關于“SQL中case when怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節
推薦閱讀:
  1. case when
  2. SQL CASE 的用法

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女