溫馨提示×

溫馨提示×

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

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

mysql中case when的作用是什么

發布時間:2020-09-04 14:22:25 來源:億速云 閱讀:600 作者:小新 欄目:MySQL數據庫

mysql中case when的作用是什么?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

mysql case when的用法是:1、用作簡單搜索,語法為【CASE [col_name] WHEN [value1]】;2、用作搜索,語法為【ASE WHEN [expr] THEN [result1]】。

mysql中case when的作用是什么

【相關學習推薦: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的作用是什么大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女