中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中case?when的基本用法及區別是什么

發布時間:2023-05-05 11:36:51 來源:億速云 閱讀:84 作者:iii 欄目:開發技術

本篇內容主要講解“MySQL中case when的基本用法及區別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL中case when的基本用法及區別是什么”吧!

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這兩種用法的區別:

創建salary表,并向salary表中插入數據:

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

示例一:在查詢語句中實現更改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.

示例二:在查詢語句中實現將salary表中員工的工資歸類。歸類依據是,工資在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;

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

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

MySQL中case?when的基本用法及區別是什么

MySQL中case?when的基本用法及區別是什么

到此,相信大家對“MySQL中case when的基本用法及區別是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夏邑县| 阿城市| 辉南县| 白沙| 红原县| 手机| 曲松县| 宣城市| 武清区| 巴南区| 三门县| 简阳市| 新竹市| 平邑县| 桑植县| 怀安县| 定远县| 芒康县| 龙陵县| 方山县| 穆棱市| 海城市| 濉溪县| 敦化市| 永城市| 德兴市| 慈溪市| 东海县| 邢台市| 元氏县| 峨眉山市| 大邑县| 瑞昌市| 保德县| 绿春县| 云阳县| 平阳县| 福泉市| 双辽市| 红安县| 措勤县|