plsql中case when用法

plsql中case when用法

PL/SQL中的CASE WHEN是一种条件语句,用于根据指定条件执行不同动作。其语法结构清晰,支持嵌套,但存在一定限制。以下是详细说明:

或(简单形式,仅比较单一值):

定义条件

通过WHEN子句指定逻辑条件(如score > 90),条件为真时返回对应THEN后的结果。

示例:CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' ELSE 'C'END;

指定结果

每个THEN子句定义条件满足时的返回值(如字符串、数字等)。

设置默认值

ELSE子句处理所有未匹配条件的情况,可省略(此时未匹配条件返回NULL)。

单一值条件

无法直接处理范围(如BETWEEN)或列表(如IN),需通过逻辑运算符组合条件:WHEN age >= 18 AND age <= 25 THEN 'Young Adult'

结果必须为标量

返回值不能是表、游标或复杂数据结构,仅限单个值(如VARCHAR2、NUMBER)。

简单值匹配

复杂条件判断

通过合理使用CASE WHEN,可以显著提升PL/SQL代码的可读性和维护性,尤其在数据转换或条件赋值场景中。