2013-07-14 46 views
-3

考虑这种情况下:大小写是否自动中断?

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中打开一个开关盒?

回答

2

阅读documentation

一旦条件被发现是真的,case语句将返回结果,并没有任何进一步的评估条件。进一步的解释可以在here找到。

的case语句的语法是:

CASE [表达式]

WHEN condition_1 THEN result_1

WHEN condition_2 THEN result_2

...

WHEN condition_n THEN result_n

ELSE导致

END

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

condition_1 to condition_n必须全部是相同的数据类型。条件按列出的顺序进行评估。一旦发现条件成立,案例陈述将返回结果并且不再评估条件。

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

+0

我错过了行,当我阅读文档:)感谢。 –