MySQLCaseWhen多個條件詳解

一、MySQLCaseWhen的基本語法

MySQL中,CASE WHEN語法是一種操作符,可以根據一個或多個條件執行不同的操作。

其基本語法為:

CASE 
   WHEN condition1 THEN result1
   WHEN condition2 THEN result2
   WHEN conditionN THEN resultN
   ELSE result
END;

其中,CASE是操作符的名稱,condition1, condition2, conditionN是條件,result1, result2, resultN是對應條件的結果,ELSE result是當所有條件都不成立時返回的結果。

二、MySQLCaseWhen多個條件的使用

MySQLCaseWhen語法可以同時處理多個條件,只需要在WHEN之後再添加一個條件即可。

例如,我們可以使用MySQLCaseWhen多個條件來查詢一個成績區間的所有學生:

SELECT student_name, 
CASE 
   WHEN score  60 and score  70 and score  80 and score <= 90 THEN '良好'
   ELSE '優秀'
END as '成績等級'
FROM students;

以上語句會查詢students表中每個學生的成績,並將成績按照條件進行分類,最後返回學生名稱和成績等級。

三、使用MySQLCaseWhen進行關聯選取

MySQLCaseWhen還可以用於多張表的關聯選取,通過CASE語句可以實現在不同表中根據不同條件查詢返回相應的結果。

例如,我們可以使用MySQLCaseWhen在兩個表中查詢每個產品的總銷售量和銷售價格:

SELECT p.product_name, 
CASE 
   WHEN sum(o.quantity) = 50 and sum(o.quantity) < 100 THEN '中等銷量'
   ELSE '高銷量'
END as '銷售量',
CASE 
   WHEN avg(o.price) = 10 and avg(o.price) < 50 THEN '中等價產品'
   ELSE '高價產品'
END as '價格段'
FROM products p
JOIN orders o
ON p.product_id = o.product_id
GROUP BY p.product_name;

以上語句會查詢出products表中每個產品的總銷售量和平均銷售價格,並將銷售量和價格段按照條件分類,最後返回產品名稱、銷售量和價格段。

四、使用MySQLCaseWhen進行數據轉換

MySQLCaseWhen還可以用於數據轉換,例如將數據類型從字符串轉換為數字,或從數字轉換為字符串。

例如,我們可以使用MySQLCaseWhen將gender字段從字符串類型轉換為數字類型:

SELECT student_name, 
CASE 
   WHEN gender = 'male' THEN 1
   ELSE 0
END as 'gender_num'
FROM students;

以上語句會查詢出students表中每個學生的姓名和性別,並將性別轉換為數字類型,male為1,female為0。

五、使用MySQLCaseWhen進行數據篩選

MySQLCaseWhen還可以用於數據篩選,例如通過條件篩選出滿足條件的數據。

例如,我們可以使用MySQLCaseWhen將查詢出僱員工資大於2000的信息:

SELECT e.last_name, e.salary, 
CASE 
   WHEN salary > 2000 THEN '高薪'
   ELSE '低薪'
END as '薪資水平'
FROM employees e;
WHERE salary > 2000;

以上語句會查詢出employees表中工資大於2000的員工信息,並將工資按照條件分類,最後返回員工姓名、工資和薪資水平。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249064.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:31
下一篇 2024-12-12 13:31

相關推薦

發表回復

登錄後才能評論