CASE 条件运算符
CASE 条件运算符可以实现类似 IF...THEN...ELSE 的逻辑而不用调用子程序。
CASE 条件运算符的语法
CASE 条件运算符的语法有两种,如下所示:
CASE value WHEN compare-value THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
CASE WHEN condition THEN result [WHEN [condition] THEN result ...] [ELSE result] END
第一个 CASE 语法返回第一个 value=compare-value 的比较结果为 True 时的 result。
第二个 CASE 语法返回第一个 condition 为 True 时的 result。如果没有比较或条件为 True,则返回 ELSE 之后的 result,如果没有 ELSE 部分,则返回 NULL。
CASE 条件运算符的示例
SELECT CASE 'B' WHEN 'A' THEN 1 WHEN 'B' THEN 2 END;
+----------------------------------------------+
| CASE 'B' WHEN 'A' THEN 1 WHEN 'B' THEN 2 END |
+----------------------------------------------+
| 2 |
+----------------------------------------------+
1 row in set (0.001 sec)
SELECT CASE CONCAT('A','B') WHEN CONCAT('AB','') THEN 'A' WHEN 'B' THEN 'B' END;
+--------------------------------------------------------------------------+
| CASE CONCAT('A','B') WHEN CONCAT('AB','') THEN 'A' WHEN 'B' THEN 'B' END |
+--------------------------------------------------------------------------+
| A |
+--------------------------------------------------------------------------+
1 row in set (0.001 sec)
SELECT CASE WHEN 1>0 THEN 'TRUE' ELSE 'FALSE' END;
+--------------------------------------------+
| CASE WHEN 1>0 THEN 'TRUE' ELSE 'FALSE' END |
+--------------------------------------------+
| TRUE |
+--------------------------------------------+
1 row in set (0.001 sec)