2016-05-19 5 views
0

誰でも下のSQLをより速く動かすように変更する手助けはできますか?ありがとう。このSELECT CASEをより速く実行させるにはどうすればよいですか?

SELECT DISTINCT B.CLT_NBR , 
     CASE 
      WHEN A.Id IS NOT NULL THEN 'YES' 
      ELSE 'NO' 
     END AS CHECK 
FROM B 
LEFT JOIN A ON(B.CLT_NBR = A.CLT_NBR) 

注:を代わりに私はあなたがAの主キーを使用する必要が使用してきましたA.Idの

SELECT DISTINCT B.CLT_NBR , 
     CASE 
      WHEN B.CLT_NBR IN (SELECT CLT_NBR FROM A) THEN 'YES' 
      ELSE 'NO' 
     END AS CHECK 
FROM B 
+1

代わりにLEFT JOINを実行してください。 – jarlh

+0

各テーブルのCLT_NBRにインデックスがありますか? –

答えて

2

使用すると、サブクエリの代わりに参加残しました。

+0

'A.CLT_NBR'を使わないのはなぜですか?そしてyesとnoを置き換える必要はありません:) – sagi

+0

... IS NULLの代わりにIS NOT NULLを使用してください...キャッチをありがとう。あなたの質問に関しては、ただ個人的な好みです。 –

関連する問題