MySQL 的 case when 的語法有兩種:
- 簡單函數
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
- 搜索函數
CASE WHEN [expr] THEN [result1]…ELSE [default] END
區別:
搜索函數可以寫判斷,並且搜索函數只會返回第一個符合條件的值,其他case
被忽略
以下是示例,查看近7天的訂單:
SELECT
`order_id` AS "訂單號",
price` AS "實際金額",
CASE status
WHEN 1 THEN
'已退貨'
WHEN 3 THEN
'無效'
WHEN 15 THEN
'待付款'
WHEN 16 THEN
'已付款'
WHEN 17 THEN
'已完成'
ELSE
'其它'
END AS "訂單狀態",
DATE_FORMAT(order_time, '%Y-%m-%d %H:%i:%s') AS "下單時間"
FROM
order_table
WHERE
order_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY)
AND now()
ORDER BY
order_time ASC