MySQL CASE表达式是控制流函数的一部分,该函数使无涯教程能够向查询中编写 if-else或if-then-else 逻辑。
CASE表达式验证各种条件,并在第一个条件为 true 时返回结果。一旦满足条件,它将停止遍历并给出输出。如果找不到任何满足条件的条件,它将执行 else块。当找不到else块时,它将返回 NULL 值。 MySQL CASE语句的主要目标是处理SELECT子句中的多个IF语句。
无涯教程可以通过两种方式使用CASE语句,如下所示:
第一种方法是获取一个值并将其与给定的语句匹配,如下所示。
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
当第一个 compare_value 比较结果为true时,它将返回结果。否则,它将返回else子句。
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
成功执行以上命令后,无涯教程将看到以下输出。
链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-case-expression.html
来源:LearnFk无涯教程网
第二种方法是在 WHEN 子句中考虑 search_condition ,如果找到,则在相应的THEN子句中返回结果。否则,它将返回else子句。如果未指定else子句,它将返回NULL值。
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
输出
CASE表达式根据使用结果的上下文返回结果。例如:
CASE语句可以支持以下 MySQL版本:
让无涯教程创建一个表" student"并在该表上执行CASE语句。
在上表中,可以看到class列包含学生部门的简称。这就是为什么要用完整的表格更改部门的简称。现在,执行以下查询以执行此操作。
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
成功执行以上查询后,无涯教程将获得以下输出。在这里,可以看到department列包含完整格式,而不是简短格式。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)