mysql case when 用法

MySQL 的 case when 的语法有两种:

    1. 简单函数 
      CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
    2. 搜索函数 
      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

posted @ 2020-07-10 11:27  xuzhujack  阅读(1453)  评论(0编辑  收藏  举报
;