91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

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

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

liguoquan
2023年6月27日 15:13 本文熱度 1181
: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具有兩種格式:簡(jiǎn)單Case函數(shù)和Case搜索函數(shù)。

簡(jiǎn)單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

顯然,簡(jiǎn)單Case函數(shù)勝在簡(jiǎn)潔,但是它只適用于這種單字段的單值比較,而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的使用案例就清楚了。

使用場(chǎng)景

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

根據(jù)這個(gè)國(guó)家人口數(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 '中國(guó)'     THEN '亞洲'

WHEN '印度'     THEN '亞洲'

WHEN '日本'     THEN '亞洲'

WHEN '美國(guó)'     THEN '北美洲'

WHEN '加拿大'  THEN '北美洲'

WHEN '墨西哥'  THEN '北美洲'

ELSE '其他' END as '洲' , SUM(population) as '人口'

from test

GROUP BY CASE country

WHEN '中國(guó)'     THEN '亞洲'

WHEN '印度'     THEN '亞洲'

WHEN '日本'     THEN '亞洲'

WHEN '美國(guó)'     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 '中國(guó)'     THEN 0

WHEN '印度'     THEN 0

WHEN '日本'     THEN 0

WHEN '美國(guó)'     THEN 1

WHEN '加拿大'  THEN 1

WHEN '墨西哥'  THEN 1

ELSE 2 END;

2、用一個(gè)SQL語句完成不同條件的分組。

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

用Case函數(shù)來完成按照國(guó)家和性別進(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è)國(guó)家的男性人口。


該文章在 2023/6/27 15:13:45 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(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

主站蜘蛛池模板: 午夜成人理论片 | 国产精品亚洲自 | 青青草原网站 | 欧美性色高清生活片 | 国产精品一二二区 | 区二区八戒 | 国产精品第一二三区 | 91资源在线视频 | 殴美伊人色综合久 | 午夜免费久 | 精品国产自在现线 | 国产亚洲精品资源在 | 午夜日韩高清 | 欧美性白人极 | 福利在线高湖 | 日韩免费在线观看 | 强奷乱码中文字幕 | 日本高清 | 97视频免费| 国产精品一二三 | 韩国精品一区二 | 国产日韩影院在线 | 国产精品亚洲αv | 人人添人人 | 国产免费h无 | 国产老熟女ass | 国产欧美视频日韩 | 国产精品专区第1页 | 91福利国产在线在 | 日本中文字幕第 | 欧美性受xxxx黑 | 日韩午夜激情影院 | 成人国产精品视频 | 韩国三级激情 | 国产伦理一区 | 国产精品大神 | 动漫国产在线精品一 | 欧美日韩一区免费 | 日本一二区不卡 | 欧美日韩国产不卡 | 韩国成年性午夜 |