通过 CASE 表达式,可以在表达式中使用 IF ... THEN ... ELSE 逻辑。
在简单 Case 表达式中,CASE 搜索 expr 等于 comparison_expr 的第一个 WHEN ... THEN 对,然后返回 return_expr。如果没有任何 WHEN ... THEN 对符合此条件,并且存在 ELSE 子句,则 CASE 返回 else_expr。否则,CASE 返回空值。
在搜索的 CASE 表达式中,CASE 从左到右进行搜索,直到找到一个为真的 condition,然后返回 return_expr。如果找不到为真的 condition,并且存在 ELSE 子句,则 CASE 返回 else_expr。否则,CASE 返回空值。
与 else_expression 参数一样
CASE { simple_case_expression
| searched_case_expression
}
[ ELSE else_expression ]
END
simple_case_expression::=
expr WHEN comparison_expr
THEN return_expr
[ WHEN comparison_expr
THEN return_expr ]...
searched_case_expression::=
WHEN condition THEN return_expr
[ WHEN condition THEN return_expr ]...
expr 是要进行测试的基本表达式。
comparison_expr 是根据其对 expr 进行测试的表达式。其必须具有与 expr 一样的基本数据类型 (数字或文本)。
condition 是条件表达式。
return_expr 是在找到匹配项或条件为真时返回的值。
以下语句根据 credit_limit 的值返回 Low、Medium 或 High:
CASE credit_limit WHEN 100 THEN 'Low' WHEN 5000 THEN 'High' ELSE 'Medium'
下一条语句在薪水大于或等于 2000 时返回实际薪水,在薪水小于 2000 时返回 2000。
CASE WHEN salary > 2000 THEN salary ELSE 2000 END
版权所有 © 2003,2007,Oracle。保留所有权利。