国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:201日期:2023-05-05 10:11:53

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

用法一:

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

下面通過(guò)具體示例來(lái)說(shuō)明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);

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

采用case when的第一種用法:

select id,name,case sexwhen "f" then "m"else "f" end as new_sex,salary from salary;

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

采用case when的第二種用法:

select id,name,casewhen sex="f" then "m"else "f" end as new_sex,salary from salary;

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

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

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

select id,name,sex,casewhen 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’類,則此時(shí)也可以采用case when的第一種用法:

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

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

補(bǔ)充:MySQL中的case when 中對(duì)于NULL值判斷

總結(jié)

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

標(biāo)簽: MySQL
主站蜘蛛池模板: 基隆市| 左贡县| 德清县| 府谷县| 延川县| 鄄城县| 济宁市| 伊吾县| 漯河市| 家居| 长岭县| 衢州市| 胶州市| 湄潭县| 桓台县| 临夏县| 哈密市| 常山县| 台北县| 铜鼓县| 台中县| 陇西县| 竹溪县| 文昌市| 泾川县| 家居| 五寨县| 甘南县| 金山区| 沿河| 侯马市| 都安| 崇州市| 梓潼县| 如东县| 四川省| 大名县| 南丰县| 独山县| 牙克石市| 阜平县|