SQL中casewhen怎么用

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

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管維護、企業(yè)網(wǎng)站設(shè)計、黔西南州網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

SQL中case when的用法

Case具有兩種格式:簡單Case函數(shù)和Case搜索函數(shù)。

簡單Case函數(shù):

CASE sex
WHEN ‘1’ THEN ‘男’
WHEN ‘0’ THEN ‘女’
ELSE ‘其他’ END

Case搜索函數(shù):

CASE WHEN sex = ‘1’ THEN ‘男’
WHEN sex = ‘0’ THEN ‘女’
ELSE ‘其他’ END

顯然,簡單Case函數(shù)勝在簡潔,但是它只適用于這種單字段的單值比較,而Case搜索函數(shù)的優(yōu)點在于適用于所有比較的情況。

還有一個需要注意的問題,Case函數(shù)在滿足了某個符合條件后,剩下的條件將會被自動忽略,因此,即使?jié)M足多個條件,執(zhí)行過程中也只認(rèn)第一個條件。

在使用 CASE WHEN時,可以把它當(dāng)作一個邏輯上的匿名字段,字段值根據(jù)條件確認(rèn),在需要使用字段名時可以是用 as來定義別名。這么說還很抽象,看看下面 CASE WHEN的使用案例就清楚了。

使用場景

1、可以將已知數(shù)據(jù)按照某種方式進行分組,分析。

SQL中case when怎么用

根據(jù)這個國家人口數(shù)據(jù),統(tǒng)計亞洲和北美洲的人口數(shù)量。使用如下 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都相當(dāng)于一個字段,不過值得一提的是,第二個CASE WHEN 的THEN值并不用寫明是什么洲,它只是用于將記錄進行分組,所以THEN后面的值只有能區(qū)分這三種記錄就行,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語句完成不同條件的分組。

有如下數(shù)據(jù):

SQL中case when怎么用

用Case函數(shù)來完成按照國家和性別進行分組。使用如下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;

得到如下結(jié)果:

SQL中case when怎么用

就第一個CASE WHEN講解:

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

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

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

分享名稱:SQL中casewhen怎么用
當(dāng)前地址:http://bm7419.com/article40/jdcgeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、面包屑導(dǎo)航、品牌網(wǎng)站設(shè)計Google、網(wǎng)站導(dǎo)航搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名