狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[轉(zhuǎn)帖]SQL中Case When的用法

liguoquan
2023年6月27日 15:13 本文熱度 960
:SQL中Case When的用法


SQL中Case When的用法

在SQL中,“Case When”語句用于選擇判斷,在執(zhí)行時(shí)先對(duì)條件進(jìn)行判斷,然后根據(jù)判斷結(jié)果做出相應(yīng)的操作;語法“CASE 字段 WHEN 條件1 THEN 操作1 WHEN 條件2 THEN 操作2...ELSE 操作n END;”。

本教程操作環(huán)境:windows7系統(tǒng)、Microsoft SQL Server 2016版、Dell G3電腦。

SQL中case when的用法

case when類似于編程語言中的if else判斷、switch case語句。該語句執(zhí)行時(shí)先對(duì)條件進(jìn)行判斷,然后根據(jù)判斷結(jié)果做出相應(yīng)的操作。

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

簡單Case函數(shù):

1

2

3

4

CASE sex

WHEN ‘1’ THEN ‘男’

WHEN ‘0’ THEN ‘女’

ELSE ‘其他’ END

Case搜索函數(shù):

1

2

3

CASE WHEN sex = ‘1’ THEN ‘男’

WHEN sex = ‘0’ THEN ‘女’

ELSE ‘其他’ END

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

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

(PHP中文網(wǎng),有大量免費(fèi)的SQL教程,歡迎大家學(xué)習(xí)!)

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

使用場景

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

根據(jù)這個(gè)國家人口數(shù)據(jù),統(tǒng)計(jì)亞洲和北美洲的人口數(shù)量。使用如下 SQL:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

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;

這里的兩個(gè)CASE WHEN都相當(dāng)于一個(gè)字段,不過值得一提的是,第二個(gè)CASE WHEN 的THEN值并不用寫明是什么洲,它只是用于將記錄進(jìn)行分組,所以THEN后面的值只有能區(qū)分這三種記錄就行,GROUP BY也可以寫成:

1

2

3

4

5

6

7

8

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、用一個(gè)SQL語句完成不同條件的分組。

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

用Case函數(shù)來完成按照國家和性別進(jìn)行分組。使用如下SQL:

1

2

3

4

5

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é)果:

就第一個(gè)CASE WHEN講解:

1

2

CASE WHEN sex = '1' THEN

population ELSE 0 END

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


該文章在 2023/6/27 15:13:45 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved