国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 數(shù)據(jù)庫 SQL SQL中Case When的用法

SQL中Case When的用法

Feb 18, 2020 pm 01:12 PM
case sql 用法

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

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ìn)行判斷,然后根據(jù)判斷結(jié)果做出相應(yīng)的操作。

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)點(diǎn)在于適用于所有比較的情況。

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

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

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

使用場景

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

1.png

根據(jù)這個國家人口數(shù)據(jù),統(tǒng)計(jì)亞洲和北美洲的人口數(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;

2.png

這里的兩個CASE WHEN都相當(dāng)于一個字段,不過值得一提的是,第二個CASE WHEN 的THEN值并不用寫明是什么洲,它只是用于將記錄進(jìn)行分組,所以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ù):

3.png

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

4.png

就第一個CASE WHEN講解:

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

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

更多SQL等編程入門教程,請持續(xù)關(guān)注PHP中文網(wǎng)?。? ? ? ??

以上是SQL中Case When的用法的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的區(qū)別是什么? Hibernate 框架中 HQL 和 SQL 的區(qū)別是什么? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中進(jìn)行比較:HQL(1.面向?qū)ο笳Z法,2.數(shù)據(jù)庫無關(guān)的查詢,3.類型安全),而SQL直接操作數(shù)據(jù)庫(1.與數(shù)據(jù)庫無關(guān)的標(biāo)準(zhǔn),2.可執(zhí)行復(fù)雜查詢和數(shù)據(jù)操作)。

Oracle和DB2的SQL語法比較與區(qū)別 Oracle和DB2的SQL語法比較與區(qū)別 Mar 11, 2024 pm 12:09 PM

Oracle和DB2是兩個常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它們都有自己獨(dú)特的SQL語法和特點(diǎn)。本文將針對Oracle和DB2的SQL語法進(jìn)行比較與區(qū)別,并提供具體的代碼示例。數(shù)據(jù)庫連接在Oracle中,使用以下語句連接數(shù)據(jù)庫:CONNECTusername/password@database而在DB2中,連接數(shù)據(jù)庫的語句如下:CONNECTTOdataba

Oracle SQL中除法運(yùn)算的用法 Oracle SQL中除法運(yùn)算的用法 Mar 10, 2024 pm 03:06 PM

《OracleSQL中除法運(yùn)算的用法》在OracleSQL中,除法運(yùn)算是常見的數(shù)學(xué)運(yùn)算之一。在數(shù)據(jù)查詢和處理過程中,除法運(yùn)算可以幫助我們計(jì)算字段之間的比例或者得出特定數(shù)值的邏輯關(guān)系。本文將介紹OracleSQL中除法運(yùn)算的用法,并提供具體的代碼示例。一、OracleSQL中除法運(yùn)算的兩種方式在OracleSQL中,除法運(yùn)算可以使用兩種不同的方式進(jìn)行

詳解MyBatis動態(tài)SQL標(biāo)簽中的Set標(biāo)簽功能 詳解MyBatis動態(tài)SQL標(biāo)簽中的Set標(biāo)簽功能 Feb 26, 2024 pm 07:48 PM

MyBatis動態(tài)SQL標(biāo)簽解讀:Set標(biāo)簽用法詳解MyBatis是一個優(yōu)秀的持久層框架,它提供了豐富的動態(tài)SQL標(biāo)簽,可以靈活地構(gòu)建數(shù)據(jù)庫操作語句。其中,Set標(biāo)簽是用于生成UPDATE語句中SET子句的標(biāo)簽,在更新操作中非常常用。本文將詳細(xì)解讀MyBatis中Set標(biāo)簽的用法,以及通過具體的代碼示例來演示其功能。什么是Set標(biāo)簽Set標(biāo)簽用于MyBati

SQL出現(xiàn)5120錯誤怎么解決 SQL出現(xiàn)5120錯誤怎么解決 Mar 06, 2024 pm 04:33 PM

解決辦法:1、檢查登錄用戶是否具有足夠的權(quán)限來訪問或操作該數(shù)據(jù)庫,確保該用戶具有正確的權(quán)限;2、檢查SQL Server服務(wù)的帳戶是否具有訪問指定文件或文件夾的權(quán)限,確保該帳戶具有足夠的權(quán)限來讀取和寫入該文件或文件夾;3、檢查指定的數(shù)據(jù)庫文件是否已被其他進(jìn)程打開或鎖定,嘗試關(guān)閉或釋放該文件,并重新運(yùn)行查詢;4、嘗試以管理員身份運(yùn)行Management Studio等等。

數(shù)據(jù)庫技術(shù)大比拼:Oracle和SQL的區(qū)別有哪些? 數(shù)據(jù)庫技術(shù)大比拼:Oracle和SQL的區(qū)別有哪些? Mar 09, 2024 am 08:30 AM

數(shù)據(jù)庫技術(shù)大比拼:Oracle和SQL的區(qū)別有哪些?在數(shù)據(jù)庫領(lǐng)域中,Oracle和SQLServer是兩種備受推崇的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。盡管它們都屬于關(guān)系型數(shù)據(jù)庫的范疇,但兩者之間存在著諸多不同之處。在本文中,我們將深入探討Oracle和SQLServer之間的區(qū)別,以及它們在實(shí)際應(yīng)用中的特點(diǎn)和優(yōu)勢。首先,Oracle和SQLServer在語法方面存

MySQL連接數(shù)對數(shù)據(jù)庫性能的影響分析 MySQL連接數(shù)對數(shù)據(jù)庫性能的影響分析 Mar 16, 2024 am 10:09 AM

MySQL連接數(shù)對數(shù)據(jù)庫性能的影響分析隨著互聯(lián)網(wǎng)應(yīng)用的不斷發(fā)展,數(shù)據(jù)庫成為了支撐應(yīng)用系統(tǒng)重要的數(shù)據(jù)存儲和管理工具。在數(shù)據(jù)庫系統(tǒng)中,連接數(shù)是一個重要的概念,它直接關(guān)系到數(shù)據(jù)庫系統(tǒng)的性能和穩(wěn)定性。本文將從MySQL數(shù)據(jù)庫的角度出發(fā),探討連接數(shù)對數(shù)據(jù)庫性能的影響,并通過具體的代碼示例進(jìn)行分析。一、連接數(shù)是什么?連接數(shù)指的是數(shù)據(jù)庫系統(tǒng)同時支持的客戶端連接數(shù),也可以理

MySQL ISNULL 函數(shù)詳解及用法介紹 MySQL ISNULL 函數(shù)詳解及用法介紹 Mar 01, 2024 pm 05:24 PM

MySQL中的ISNULL()函數(shù)是用于判斷指定表達(dá)式或列是否為NULL的函數(shù)。它返回一個布爾值,如果表達(dá)式為NULL則返回1,否則返回0。ISNULL()函數(shù)可以在SELECT語句中使用,也可以在WHERE子句中進(jìn)行條件判斷。1.ISNULL()函數(shù)的基本語法:ISNULL(expression)其中,expression是要判斷是否為NULL的表達(dá)式或

See all articles