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

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[轉帖]SQL中Case When的用法

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


SQL中Case When的用法

在SQL中,“Case When”語句用于選擇判斷,在執行時先對條件進行判斷,然后根據判斷結果做出相應的操作;語法“CASE 字段 WHEN 條件1 THEN 操作1 WHEN 條件2 THEN 操作2...ELSE 操作n END;”。

本教程操作環境:windows7系統、Microsoft SQL Server 2016版、Dell G3電腦。

SQL中case when的用法

case when類似于編程語言中的if else判斷、switch case語句。該語句執行時先對條件進行判斷,然后根據判斷結果做出相應的操作。

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

簡單Case函數:

1

2

3

4

CASE sex

WHEN ‘1’ THEN ‘男’

WHEN ‘0’ THEN ‘女’

ELSE ‘其他’ END

Case搜索函數:

1

2

3

CASE WHEN sex = ‘1’ THEN ‘男’

WHEN sex = ‘0’ THEN ‘女’

ELSE ‘其他’ END

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

還有一個需要注意的問題,Case函數在滿足了某個符合條件后,剩下的條件將會被自動忽略,因此,即使滿足多個條件,執行過程中也只認第一個條件。

(PHP中文網,有大量免費的SQL教程,歡迎大家學習!)

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

使用場景

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

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

這里的兩個CASE WHEN都相當于一個字段,不過值得一提的是,第二個CASE WHEN 的THEN值并不用寫明是什么洲,它只是用于將記錄進行分組,所以THEN后面的值只有能區分這三種記錄就行,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、用一個SQL語句完成不同條件的分組。

有如下數據:

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

得到如下結果:

就第一個CASE WHEN講解:

1

2

CASE WHEN sex = '1' THEN

population ELSE 0 END

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


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