MySQL CASE函数

时间:2019-02-04 12:52:47  来源:igfitidea点击:

本MySQL教程通过语法和示例说明了如何使用MySQL CASE函数。

描述

MySQL CASE函数具有IF-THEN-ELSE语句的功能,它可以测试条件并在第一次满足条件时返回一个值。

语法

MySQL中CASE函数的语法为:

CASE [ expression ]

   WHEN condition_1 THEN result_1
   WHEN condition_2 THEN result_2
   ...
   WHEN condition_n THEN result_n

   ELSE result

END

expression可选的表达式。它是要与条件列表(即:condition_1,condition_2,... condition_n)进行比较的值。
condition_1,condition_2,... condition_n按照列出的顺序进行比较的条件。
result_1,result_2,... result_n对应的条件满足时返回的结果。

说明

  • 如果都没有条件满足,则CASE函数将返回ELSE子句中的值。
  • 如果省略了ELSE子句,并且没有条件被满足,则CASE语句将返回NULL。

示例

SELECT supplier_id,
CASE quantity
  WHEN > 10 THEN '数量大于 10'
  WHEN = 10 THEN '数量等于 10'
  ELSE '数量小于10'
END
FROM suppliers;

在此示例中,表达式是quantity,其将与每个条件进行比较,直到满足一个条件为止。

使用CASE函数时还可以在省略表达式:

SELECT
CASE
  WHEN a < b THEN 1
  WHEN supplier_type = 'clothing' THEN 2
  ELSE 3
END
FROM suppliers;

在此示例中,每个条件都可以单独评估。当满足前面的条件之一时,将返回相应的值。后面的就不会再判断。