简单的case语句
格式:
CASE 表达式
WHEN cond1 THEN value1
WHEN cond2 THEN value2
WHEN condN THEN valueN
ELSE value
END;
- Cond1,cond2,…..,condN:表示在 CASE 语句列表中需要评估的条件。
- Value1, value2, .....,valueN:表示满足条件时需要显示的各个值。
- Value:表示 else 部分满足时显示的值。
eg:
mysql> SELECT CASE WEEKDAY(NOW())
WHEN 0 THEN '星期一'
WHEN 1 THEN '星期二'
WHEN 2 THEN '星期三'
WHEN 3 THEN '星期四'
WHEN 4 THEN '星期五'
WHEN 5 THEN '星期六'
ELSE '星期天'
END AS
COLUMN1,NOW(),WEEKDAY(NOW()),DAYNAME(NOW())
FROM table01;
+---------+---------------------+----------------+----------------+
| COLUMN1 | NOW() | WEEKDAY(NOW()) | DAYNAME(NOW()) |
+---------+---------------------+----------------+----------------+
| 星期三 | 2023-04-26 10:27:21 | 2 | Wednesday |
+---------+---------------------+----------------+----------------+
可搜索的case语句
简单 CASE 语句仅允许将表达式的值与一组不同的值进行匹配。 为了执行更复杂的匹配,如范围,则可以使用可搜索 CASE 语句。 可搜索 CASE 语句等同于 IF 语句,但是它的构造更加可读。
mysql> SELECT CASE
WHEN WEEKDAY(NOW())=0 THEN '星期一'
WHEN WEEKDAY(NOW())=1 THEN '星期二'
WHEN WEEKDAY(NOW())=2 THEN '星期三'
WHEN WEEKDAY(NOW())=3 THEN '星期四'
WHEN WEEKDAY(NOW())=4 THEN '星期五'
WHEN WEEKDAY(NOW())=5 THEN '星期六'
WHEN WEEKDAY(NOW())=6 THEN '星期天'
END AS
COLUMN1,NOW(),WEEKDAY(NOW()),DAYNAME(NOW())
FROM table01;
+---------+---------------------+----------------+----------------+
| COLUMN1 | NOW() | WEEKDAY(NOW()) | DAYNAME(NOW()) |
+---------+---------------------+----------------+----------------+
| 星期三 | 2023-04-26 10:29:51 | 2 | Wednesday |
+---------+---------------------+----------------+----------------+