[轉(zhuǎn)帖]SQL中Case When的用法
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
:SQL中Case When的用法 SQL中Case When的用法
本教程操作環(huán)境:windows7系統(tǒng)、Microsoft SQL Server 2016版、Dell G3電腦。 SQL中case when的用法 case when類似于編程語言中的if else判斷、switch case語句。該語句執(zhí)行時先對條件進行判斷,然后根據(jù)判斷結(jié)果做出相應(yīng)的操作。 Case具有兩種格式:簡單Case函數(shù)和Case搜索函數(shù)。 簡單Case函數(shù):
Case搜索函數(shù):
顯然,簡單Case函數(shù)勝在簡潔,但是它只適用于這種單字段的單值比較,而Case搜索函數(shù)的優(yōu)點在于適用于所有比較的情況。 還有一個需要注意的問題,Case函數(shù)在滿足了某個符合條件后,剩下的條件將會被自動忽略,因此,即使?jié)M足多個條件,執(zhí)行過程中也只認第一個條件。 (PHP中文網(wǎng),有大量免費的SQL教程,歡迎大家學(xué)習(xí)!) 在使用 CASE WHEN時,可以把它當(dāng)作一個邏輯上的匿名字段,字段值根據(jù)條件確認,在需要使用字段名時可以是用 as來定義別名。這么說還很抽象,看看下面 CASE WHEN的使用案例就清楚了。 使用場景 1、可以將已知數(shù)據(jù)按照某種方式進行分組,分析。 根據(jù)這個國家人口數(shù)據(jù),統(tǒng)計亞洲和北美洲的人口數(shù)量。使用如下 SQL:
這里的兩個CASE WHEN都相當(dāng)于一個字段,不過值得一提的是,第二個CASE WHEN 的THEN值并不用寫明是什么洲,它只是用于將記錄進行分組,所以THEN后面的值只有能區(qū)分這三種記錄就行,GROUP BY也可以寫成:
2、用一個SQL語句完成不同條件的分組。 有如下數(shù)據(jù): 用Case函數(shù)來完成按照國家和性別進行分組。使用如下SQL:
得到如下結(jié)果: 就第一個CASE WHEN講解:
當(dāng)記錄的sex為1時,這個字段的值為記錄的population值,否則為0,因此能計算出一個國家的男性人口。 該文章在 2023/6/27 15:13:45 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |