mysql中case when的作用是什么?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
mysql case when的用法是:1、用作簡單搜索,語法為【CASE [col_name] WHEN [value1]】;2、用作搜索,語法為【ASE WHEN [expr] THEN [result1]】。

【相關學習推薦:mysql教程(視頻)】
mysql case when的用法是:
MySQL 的 case when 的語法有兩種:
簡單函數
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
搜索函數
CASE WHEN [expr] THEN [result1]…ELSE [default] END
這兩種語法有什么區別呢?
簡單函數
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END: 枚舉這個字段所有可能的值*
SELECT
NAME '英雄',
CASE NAME
WHEN '德萊文' THEN
'斧子'
WHEN '德瑪西亞-蓋倫' THEN
'大寶劍'
WHEN '暗夜獵手-VN' THEN
'弩'
ELSE
'無'
END '裝備'
FROM
user_info;
復制代碼
復制代碼
SELECT
NAME '英雄',
CASE NAME
WHEN '德萊文' THEN
'斧子'
WHEN '德瑪西亞-蓋倫' THEN
'大寶劍'
WHEN '暗夜獵手-VN' THEN
'弩'
ELSE
'無'
END '裝備'
FROM
user_info;搜索函數
CASE WHEN [expr] THEN [result1]…ELSE [default] END:搜索函數可以寫判斷,并且搜索函數只會返回第一個符合條件的值,其他case被忽略
# when 表達式中可以使用 and 連接條件
SELECT
NAME '英雄',
age '年齡',
CASE
WHEN age < 18 THEN
'少年'
WHEN age < 30 THEN
'青年'
WHEN age >= 30
AND age < 50 THEN
'中年'
ELSE
'老年'
END '狀態'
FROM
user_info;聚合函數 sum 配合 case when 的簡單函數實現行轉列
SELECT
st.stu_id '學號',
st.stu_name '姓名',
sum(
CASE co.course_name
WHEN '大學語文' THEN
sc.scores
ELSE
0
END
) '大學語文',
sum(
CASE co.course_name
WHEN '新視野英語' THEN
sc.scores
ELSE
0
END
) '新視野英語',
sum(
CASE co.course_name
WHEN '離散數學' THEN
sc.scores
ELSE
0
END
) '離散數學',
sum(
CASE co.course_name
WHEN '概率論與數理統計' THEN
sc.scores
ELSE
0
END
) '概率論與數理統計',
sum(
CASE co.course_name
WHEN '線性代數' THEN
sc.scores
ELSE
0
END
) '線性代數',
sum(
CASE co.course_name
WHEN '高等數學' THEN
sc.scores
ELSE
0
END
) '高等數學'
FROM
edu_student st
LEFT JOIN edu_score sc ON st.stu_id = sc.stu_id
LEFT JOIN edu_courses co ON co.course_no = sc.course_no
GROUP BY
st.stu_id
ORDER BY
NULL;感謝各位的閱讀!看完上述內容,你們對mysql中case when的作用是什么大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。