欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中case?when的兩種基本用法及區(qū)別總結(jié)

 更新時間:2023年05月05日 10:03:12   作者:Backcanhave7  
在mysql中case when用于計算條件列表并返回多個可能結(jié)果表達式之一,下面這篇文章主要給大家介紹了關(guān)于MySQL中case?when的兩種基本用法及區(qū)別的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

MySQL中的case when有用兩種用法,官方文檔中的說明如下:

用法一:

CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END CASE

用法二:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

下面通過具體示例來說明case when這兩種用法的區(qū)別:

創(chuàng)建salary表,并向salary表中插入數(shù)據(jù):

# 創(chuàng)建salary表:
create table salary(
id int,
name char(1),
sex char(1),
salary int
)engine myisam charset utf8;
#向salary表中插入數(shù)據(jù):
insert into salary values
(1,'A','m',2500),
(2,'B','f',1500),
(3,'C','m',5500),
(4,'D','f',500);

示例一:在查詢語句中實現(xiàn)更改salary表中員工的性別,即如果員工的性別是‘m’,則將其改為‘f’,反之如果性別為‘f’,則將其改為‘m’。

采用case when的第一種用法:

select id,name,
case sex
when 'f' then 'm'
else 'f' end as new_sex,salary from salary;

這種用法通過比較case后面的case_value和第一個when后面的when_value,若二者相等則給new_sex賦一個指定的值,若二者值不相等,則比較case_value與第二個when后面的when_value是否相等,以此類推。若case_value與所有的when_value都不相等,且有else語句的話,則把else后面的值賦給new_sex,否則把null值賦給new_sex。

采用case when的第二種用法:

select id,name,case
when sex='f' then 'm'
else 'f' end as new_sex,salary from salary;

上述代碼中,when后面是一個邏輯表達式,若表達式為真,則把then后面的值賦給new_sex;若第一個when后面表達式為假,則查看第二個when后面的邏輯表達式,以此類推的;若所有when后面的邏輯表達式均為假,且有else語句的話,則把else后面的值賦給new_sex,否則把null值賦給new_sex.

示例二:在查詢語句中實現(xiàn)將salary表中員工的工資歸類。歸類依據(jù)是,工資在1000元以下的歸為‘low’類,工資在1000-3000元范圍歸為‘middle’類,工資在3000元以上的歸為‘high’類。

這種情況只能采用case when的第二種用法:

select id,name,sex,case
when salary > 3000 then 'high'
when salary between 1000 and 3000 then 'middle'
else 'low' end as salary_level from salary;

假如以3000元為界限,將3000元以上的工資歸為‘high'類,3000元以下包括3000元的工資歸為‘low’類,則此時也可以采用case when的第一種用法:

select id,name,sex,case salary>3000
when True then 'high'
else 'low' end as salary_level from salary;

總結(jié):由前文所述可知,case when的第一類用法只適用于二值比較問題,而case when的第二種用法的適用范圍更廣。因此我將case when的第一中用法理解為簡單條件賦值,第二種用法理解為復(fù)雜條件賦值。

補充:MySQL中的case when 中對于NULL值判斷

總結(jié)

到此這篇關(guān)于MySQL中case when的兩種基本用法及區(qū)別總結(jié)的文章就介紹到這了,更多相關(guān)MySQL中case when用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決MYSQL出現(xiàn)Can''t create/write to file ''/tmp/#sql_5c0_0.MYD''的問題

    解決MYSQL出現(xiàn)Can''t create/write to file ''/tmp/#sql_5c0_0.MYD''

    今天在配置服務(wù)器的時候提示這個問題Can't create/write to file,原來是php.ini中設(shè)置的tmp目錄不存在
    2013-07-07
  • MySql8 WITH RECURSIVE遞歸查詢父子集的方法

    MySql8 WITH RECURSIVE遞歸查詢父子集的方法

    這篇文章主要介紹了MySql8 WITH RECURSIVE遞歸查詢父子集的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MySql統(tǒng)計函數(shù)COUNT的具體使用詳解

    MySql統(tǒng)計函數(shù)COUNT的具體使用詳解

    本文主要介紹了MySql統(tǒng)計函數(shù)COUNT的具體使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Mysql中where與having的區(qū)別實例詳解

    Mysql中where與having的區(qū)別實例詳解

    當(dāng)SQL語句中使用聚合函數(shù),然后又需要對聚合函數(shù)的記錄集進行篩選過濾時,這個時候就需要用到Having子句,下面這篇文章主要給大家介紹了關(guān)于Mysql中where與having區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • centos 6下安裝innodb_ruby

    centos 6下安裝innodb_ruby

    innodb_ruby 是使用 Ruby 編寫的 InnoDB 文件格式解析器。innodb_ruby 的目的是暴露一些其他隱藏的 InnoDB 原理。這些代碼并不適合生產(chǎn)環(huán)境使用。
    2017-01-01
  • MySQL回表查詢與索引覆蓋的區(qū)別

    MySQL回表查詢與索引覆蓋的區(qū)別

    本文主要介紹了MySQL回表查詢與索引覆蓋的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 體驗MySQL5.6.25并處理所遇到的問題

    體驗MySQL5.6.25并處理所遇到的問題

    本文給大家分享的是將mysql升級到5.6.25版本后所遇到的2個問題的處理解決辦法,有需要的小伙伴可以參考下。
    2015-07-07
  • MYSQL WHERE語句優(yōu)化

    MYSQL WHERE語句優(yōu)化

    where優(yōu)化主要是在SELECT中,因為他們最主要是在那里使用,但是同樣的優(yōu)化也可被用于DELETE和UPDATE語句。
    2009-03-03
  • MySQL數(shù)據(jù)庫可以用任意ip連接訪問的方法

    MySQL數(shù)據(jù)庫可以用任意ip連接訪問的方法

    本文主要介紹了MySQL數(shù)據(jù)庫可以用任意ip連接訪問的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MySQL使用臨時表加速查詢的方法

    MySQL使用臨時表加速查詢的方法

    這篇文章主要介紹了MySQL使用臨時表加速查詢的方法,分析了針對多次重復(fù)查詢使用臨時表的優(yōu)勢,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12

最新評論