案件会自动中断吗?

时间:2013-07-14 09:39:33

标签: sql oracle plsql

考虑这种情况:

case when 4 > 3 then dbms_output.put_line('3');
     when 4 > 2 then dbms_output.put_line('2');
     when 4 > 1 then dbms_output.put_line('1');
end case;

输出是什么?它会回应所有三个陈述吗?如果可以的话,我如何在pl / sql中断开开关案例?

1 个答案:

答案 0 :(得分:2)

阅读documentation

一旦发现条件为真,case语句将返回结果,不再评估条件。可以找到进一步的解释here

case语句的语法是:

  

CASE [表达]

     

当条件_1结果_1

时      

当条件_2结果_2

时      

...

     

WHEN condition_n THEN result_n

     

ELSE结果

     

END

表达式是可选的。它是您与条件列表进行比较的值。 (即:condition_1,condition_2,... condition_n)

condition_1到condition_n必须都是相同的数据类型。条件按列出的顺序评估。一旦发现条件为真,case语句将返回结果,而不再评估条件。

result_1到result_n必须都是相同的数据类型。一旦发现条件为真,这就是返回的值。