-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;

出力はどうなりますか?3 つのステートメントすべてをエコーし​​ますか? もしそうなら、どうすればpl/sqlでスイッチケースを壊すことができますか?

4

1 に答える 1

2

ドキュメントを読んでください。

条件が真であることが判明すると、case ステートメントは結果を返し、それ以上条件を評価しません。詳細については、こちらを参照してください。

case ステートメントの構文は次のとおりです。

CASE [式]

WHEN 条件_1 THEN 結果_1

WHEN 条件_2 THEN 結果_2

...

WHEN 条件_n THEN 結果_n

ELSE 結果

終わり

式はオプションです。条件のリストと比較する値です。(つまり: 条件 1、条件 2、... 条件 n)

condition_1 から condition_n はすべて同じデータ型でなければなりません。条件は、リストされている順序で評価されます。条件が真であることが判明すると、case ステートメントは結果を返し、それ以上条件を評価しません。

result_1 から result_n はすべて同じデータ型である必要があります。これは、条件が true であることが判明したときに返される値です。

于 2013-07-14T09:41:21.003 に答える