在MySQL中,我們經常需要根據一個列的值來進行一些操作,此時如果可以將列的值顯示為我們需要的特定的值就非常方便了。MySQL提供了一種非常好的方法來實現這個功能,就是使用CASE語句。
SELECT name, CASE gender WHEN 'M' THEN '男' WHEN 'F' THEN '女' ELSE '未知' END AS gender_cn FROM users;
以上語句中,我們將gender列的值顯示為中文的男/女/未知,同時增加了一個別名gender_cn用于區分新列名和原列名。
需要注意的是,CASE語句中的WHEN子句是按順序執行的,只要滿足了其中一個條件,就會停止執行。如果沒有一個條件滿足,則會執行ELSE子句。
除了簡單的用字符串來替換字段的值,還可以使用其他的表達式,比如向下取整、四舍五入等等,如下:
SELECT score, CASE WHEN score< 60 THEN '不及格' WHEN score BETWEEN 60 AND 80 THEN '及格' WHEN score BETWEEN 80 AND 90 THEN '良好' WHEN score >= 90 THEN '優秀' END AS level FROM students;
以上語句中,我們根據分數將學生等級顯示為不及格、及格、良好和優秀。
綜上,使用CASE語句可以將數據庫中的值顯示為我們需要的特定值,讓數據的處理更加方便。