用casewhen写
时间: 2024-11-23 17:29:17 浏览: 18
在Oracle PL/SQL中,`CASE WHEN`是一个条件语句,它允许你在单个表达式中根据某个条件返回不同的值。它的基本语法是:
```sql
CASE
WHEN condition_1 THEN expression_1
WHEN condition_2 THEN expression_2
[ ... ]
ELSE default_expression
END;
```
这里的`condition_i`是你想要测试的布尔表达式,如果该条件成立,就会执行并返回相应的`expression_i`。如果所有条件都不满足,则会执行`ELSE`后面的`default_expression`。
例如,如果你想根据用户的角色(Role)返回不同的工资调整,可以这样做:
```sql
DECLARE
user_role VARCHAR2(50) := 'Manager';
salary DECIMAL(10, 2) := 5000;
BEGIN
salary := CASE
WHEN user_role = 'Manager' THEN salary * 1.10
WHEN user_role = 'Employee' THEN salary * 1.05
ELSE salary
END;
DBMS_OUTPUT.PUT_LINE('Adjusted Salary: ' || salary);
END;
```
在这个例子中,如果用户角色是'Manager',则工资增加10%,如果是'Employee'则增加5%。如果不是这两种角色,就保持原样。
阅读全文