MySQL中的CASE函數是一種表達式,用于將一些條件語句與一組可選值進行匹配,選擇符合特定條件的值并返回結果。它有兩種形式:簡單CASE和搜索CASE。
簡單CASE函數的語法如下:
SELECT CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE result END FROM table_name;
搜索CASE函數的語法如下:
SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END FROM table_name;
簡單CASE函數的expression是一個列或表達式,用于匹配value1、value2等選項。搜索CASE函數則有多個condition,它們逐個被測試以匹配結果。如果沒有匹配項,則返回ELSE中的result。
下面是一個使用簡單CASE的示例:
SELECT name, CASE gender WHEN 'M' THEN 'Male' WHEN 'F' THEN 'Female' ELSE 'Unknown' END as gender FROM customers;
這個查詢將返回一個名為gender的新列,其中'M'對應'Male','F'對應'Female',其他值對應'Unknown'。
而下面是一個使用搜索CASE的示例:
SELECT name, CASE WHEN age >50 THEN 'Older' WHEN age >30 THEN 'Middle-aged' WHEN age >20 THEN 'Young adult' ELSE 'Teenager' END as age_group FROM customers;
這個查詢將返回一個名為age_group的新列,其中根據條件分別對應‘Older’、‘Middle-aged’、‘Young adult’和‘Teenager’。
CASE函數是一個非常有用的工具,可以根據不同的條件返回不同的結果。然而,它也應該謹慎使用,以免使查詢變得復雜和難以理解。