WHEN NULLと書いてしまうパターン。 この場合、例外にならない(Oracle側でストップがかからない)のでバグになる可能性大で危険。 必ず『NULLじゃないよ』の結果になってしまう誤ったSQL SELECTCASESUBSTR(NULL,1,1)WHENNULLTHEN'NULLだよ'ELSE'NULLじゃないよ'ENDAStestFROMテーブル名 NULL判定し...
条件の一致に使用されるシンプルなCASEステートメント:CASE expression WHEN value THEN result [WHEN...] [ELSE result] END各条件の評価に使用される検索済みCASEステートメント:CASE WHEN condition THEN result [WHEN ...] [ELSE result] END...
WHEN 条件が上から順に評価されるという前提に依存できるのは、スカラー式 (スカラー値を返す非相関サブクエリを含む) の場合だけであり、集計式の場合は依存できません。 また、THEN または ELSE 句の式の少なくとも 1 つが NULL 定数ではないことも確認する必要があります。 複数の結果式か...
MySQL のCASE WHEN 上記のように、CASE WHENステートメントは、式で指定された条件を満たす値をフェッチするのに役立ちます。 CASE WHENステートメントの基本的な構文は次のとおりです。 CASEWHENcondition_1THENoutput_1WHENcondition_2THENoutput_2ELSEoutput_3END; ...
CASE 式には、WHEN 節を少なくとも 1 つ指定する必要があります。それに続く WHEN 節と ELSE 節はオプションです。例えば、SELECT 文の射影節など、SQL 文に列式を使用できる場合には必ず、汎用または線形 CASE 式を使用できます。 検索条件の式または結果値式には、副問合せを指定でき、CASE...
次の例では、Reseller Order Count メジャーは、複数の WHEN 句ごとに指定されたBoolean_expressionに対して評価されます。 年ごとの Reseller Order Count メジャーの値に基づいて、結果が返されます。 WHEN 句は表示される順序で評価されるため、6 より大きい値はすべて、各値を明示的に指定しなく...
探索CASEの探索条件には副問合せは指定できません。 CASE指定の結果式すべてに動的パラメタ指定を指定することはできません。 単純CASEのCASEオペランド、複数のWHENオペランドすべてに動的パラメタ指定を指定することはできません。 動的パラメタ指定が指定された場合のDESCRIBE情報は、以下のとおり...
値が1回評価され、複数の選択肢から1つ選択するためにその値が使用される式。selectorの値は、BLOB、BFILEまたはユーザー定義型を除く任意のPL/SQL型になります。 WHEN selector_value THEN statement selector_valueは、BLOB、BFILEまたはユーザー定義型を除く任意のPL/SQL型の式になります。 selector...
when式と一致しない場合に EGL が呼び出す文節の開始部分。 以下は、2 番目のwhen文節に複数の突き合わせ式 (2, 3, 4) を含むcase文の例です。 case (myRecord.requestID) when (1) myFirstFunction(); when (2, 3, 4) try call myProgram; onException(iex InvocationException) myCallFunction(...
UPDATE文で複数の条件に分岐する必要がある場合、CASE式が便利です。 現在の給与が40万円以上の場合は10%DOWN、現在の給与が40万円以下の場合は10%UPする処理をCASE式で行っています。 UPDATE users SET salary =CASE WHEN salary >= 400000 THEN salary * 0.9 WHEN salary < 400000 THEN salary * 1.1...