元素 | 描述 | 限制 | 语法 |
---|---|---|---|
expr | 返回某种数据类型的值的表达式 | 跟在 WHEN 关键字之后的 expr 的数据类型必须与跟在 CASE 关键字之后的表达式的数据类型相兼容。THEN 子句中的 expr 的数据类型必须与其他 THEN 子句中表达式的数据类型相兼容。 | 表达式 |
数据库服务器对跟在 CASE 关键字之后的表达式求值,然后顺序地处理 WHEN 子句。如果 WHEN 关键字之后的表达式返回的值与跟在 CASE 关键字之后的表达式的一样,则数据库服务器使用跟在 THEN 关键字之后的表达式的值作为该 CASE 表达式的总结果。然后,数据库服务器停止处理该 CASE 表达式。
如果没有 WHEN 表达式返回与跟在 CASE 关键字之后的表达式相同的值,则数据库服务器使用 ELSE 子句的表达式作为该 CASE 表达式的总结果(或,如果未指定了 ELSE 子句,则该 CASE 表达式的返回值为 NULL)。
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 关键字之后的表示的数据类型相兼容。