线性的 CASE 表达式

线性的 CASE 表达式将跟在 CASE 关键字之后的表达式的值与 WHEN 子句中的表达式作比较。
线性的 CASE 表达式
元素 描述 限制 语法
expr 返回某种数据类型的值的表达式 跟在 WHEN 关键字之后的 expr 的数据类型必须与跟在 CASE 关键字之后的表达式的数据类型相兼容。THEN 子句中的 expr 的数据类型必须与其他 THEN 子句中表达式的数据类型相兼容。 表达式

数据库服务器对跟在 CASE 关键字之后的表达式求值,然后顺序地处理 WHEN 子句。如果 WHEN 关键字之后的表达式返回的值与跟在 CASE 关键字之后的表达式的一样,则数据库服务器使用跟在 THEN 关键字之后的表达式的值作为该 CASE 表达式的总结果。然后,数据库服务器停止处理该 CASE 表达式。

如果没有 WHEN 表达式返回与跟在 CASE 关键字之后的表达式相同的值,则数据库服务器使用 ELSE 子句的表达式作为该 CASE 表达式的总结果(或,如果未指定了 ELSE 子句,则该 CASE 表达式的返回值为 NULL)。

下一示例展示 SELECT 语句的 Projection 子句的 projection 列表中的线性的 CASE 表达式。对于电影标题表中的每部电影,该查询返回电影的标题、成本和类型。该语句使用 CASE 表达式来派生每部电影的类型:
SELECT title, CASE movie_type
          WHEN 1 THEN 'HORROR'
          WHEN 2 THEN 'COMEDY'
          WHEN 3 THEN 'ROMANCE'
          WHEN 4 THEN 'WESTERN'
          ELSE 'UNCLASSIFIED'
          END,
          our_cost FROM movie_titles;

在线性的 CASE 表达式中,WHEN 子句表达式的数据类型必须与跟在 CASE 关键字之后的表示的数据类型相兼容。