- 締切済み
CASE文の使用
例) SELECT A.aaa , B.eee , C.fff FROM ○○○ A LEFT JOIN ▲▲▲ B ON B.aaa = A.aaa LEFT JOIN □□□ C ON C.aaa = (CASE WHEN C.bbb =0 THEN A.aaa ELSE A.ccc) WHERE A.eee > 0 の様なSQL文を発行して、 クエリアナライザの実行プランを確認すると、 □□□ にソートが掛かり、 非常にレスポンスの悪いSQLになります。 ソートが原因か分かりませんが、 良い解決策はないでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- NOBNNN
- ベストアンサー率50% (93/186)
No1. 2個目の Left Outer JOIN の箇所が誤りがありました。 以下のように訂正してください。 _________________________________________________ Select A.aaa , B.eee , C.fff FROM A_TBl As A Left Outer JOIN B_TBL as B ON B.aaa = A.aaa Left Outer JOIN B_TBL as C ON (C.bbb = 0 and C.aaa = A.aaa) Or (C.bbb <> 0 and C.aaa = A.ccc) where A.eee > 0 ____________________________________________ 以上
- NOBNNN
- ベストアンサー率50% (93/186)
Select A.aaa , B.eee , C.fff FROM A_TBl As A Left Outer JOIN B_TBL as B ON B.aaa = A.aaa Left Outer JOIN B_TBL as B ON (C.bbb = 0 and C.aaa = A.aaa) Or (C.bbb <> 0 and C.aaa = A.ccc) where a.eee > 0 で どうでしょうか・ ためしてないので・・・