MySQL條件判斷IF,CASE,IFNULL語句詳解

oktokeep發表於2024-05-22

MySQL條件判斷IF,CASE,IFNULL語句詳解

1.IF語句的基本用法
IF(condition, true_statement, false_statement);
condition: 條件表示式,可以是任何返回布林值的表示式。
true_statement: 如果條件為真,則執行的語句。
false_statement: 如果條件為假,則執行的語句。

demo
SELECT id, name, score, IF(score >= 90, 'A', IF(score >= 80, 'B', 'C')) AS grade FROM students;

#統計修改次數,大於1次標識“修改多”,否則標識“修改少”
IF(COUNT(1) > 1,'修改多','修改少') AS '修改頻率',

2.CASE語句
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END;
expression: 表示式,用於進行比較的值。
WHEN value THEN result: 當expression等於value時,返回result。
ELSE result: 如果沒有匹配的條件,則返回result。

demo
SELECT id, name, price,
    CASE
        WHEN price > 1000 THEN '高價'
        WHEN price > 500 THEN '中價'
        ELSE '低價'
    END AS price_range
FROM products;

CASE category    
WHEN 1 THEN '訂單型別1'
WHEN 2 THEN '訂單型別2'
WHEN 3 THEN '訂單型別3'
WHEN 4 THEN '訂單型別4'
ELSE '未知'
END '訂單型別',

CASE     
WHEN category = 1 THEN '訂單型別1'
WHEN category = 2 THEN '訂單型別2'
WHEN category = 3 THEN '訂單型別3'
WHEN category = 4 THEN '訂單型別4'
ELSE '未知'
END '訂單型別',

3.IFNULL函式
IFNULL(expression, value);
expression: 表示式,用於判斷是否為NULL。
value: 如果expression為NULL,則返回的值。

demo:
SELECT IFNULL(NULL,'判斷空'); #輸出: 判斷空
SELECT IFNULL('非NULL','判斷空'); #輸出: 非NULL

相關文章