我们可以CASE在oracle中使用OR如下语句:
CASE WHEN A > 0 OR B >0 THEN c=1 END;
Run Code Online (Sandbox Code Playgroud)
我知道我们可以使用AND,但是当我使用时会出错OR.你能建议一下吗?谢谢.
你试过把你的OR语句放在parens中吗?
CASE WHEN (A > 0 OR B >0) THEN c=1 END;
Run Code Online (Sandbox Code Playgroud)
您发布了一个CASE表达式,但将其命名为CASE语句.这可能是混乱的来源.CASE表达式有效:
SQL> declare
2 bool boolean;
3 a int := 1;
4 b int := 0;
5 c int := 1;
6 begin
7 bool := CASE WHEN A > 0 OR B >0 THEN c=1 END;
8 if bool is null
9 then
10 dbms_output.put_line('NULL');
11 elsif bool
12 then
13 dbms_output.put_line('TRUE');
14 else
15 dbms_output.put_line('FALSE');
16 end if;
17 end;
18 /
TRUE
PL/SQL procedure successfully completed.
Run Code Online (Sandbox Code Playgroud)
但您可能打算使用CASE语句,该语句以"END CASE"而不是"END"结尾.一个例子:
SQL> declare
2 a int := 1;
3 b int := 0;
4 c int;
5 begin
6 case
7 when a > 0 or b > 0 then
8 c := 1;
9 end case
10 ;
11 dbms_output.put_line(c);
12 end;
13 /
1
PL/SQL procedure successfully completed.
Run Code Online (Sandbox Code Playgroud)
问候,Rob.
| 归档时间: |
|
| 查看次数: |
34077 次 |
| 最近记录: |