こんにちは、非常に遅い SQL があります。
select case when (value=1)
then (select <Some Math Logic> from table where table.id=table_2.id)
else 'false' end
from table_2 where <where clause>
私が知りたいのは、case句がどのように機能するかです..??
その部分select <Some Math Logic> from table
は巨大なテーブルセットに取り組んでいます。
Java では、if ステートメントでそれが見られます。
if(condition_1==true)
{return output;}
else
{return false;}
ifステートメントがfalseの場合、その中の部分は処理されません。知りたいのは、Oracle SQLでも同じかどうかです。
次のロジックで動作しますか..??
- ケースの状態を確認する
- true の場合、出力内で処理する
- そうでなければ他の出力を処理します。
または、以下のロジックが必要ですか:
- すべてのサブクエリを前処理する
- ケースの状態を確認する
- true の場合、出力内に表示
- そうでなければ他の出力を表示します。
助けてください
編集:上記のクエリを調整したくない人...これは単なるダミーです。
私が知る必要があるのは、case 句が段階的にどのように機能するかです。
誰かがそれについて何らかの意見を持っている場合は共有してください