星期五, 8月 03, 2018

[SQL] 利用 UNION ALL 取代 OR 條件

在調校這篇 [SQL] WHERE 條件合理性 時,其實一開始的想法是要用 UNION ALL 來把兩個條件拆開,只不過後來從參數值發現是個烏龍,筆記一下這個未採用作法,其實也是會有所改善

原語法
SELECT
  S.派工單號 ,
  I.訂單單號
FROM 派工單Table AS S
  LEFT JOIN 訂單明細Table AS I ON S.派工單號 = I.派工單號
WHERE S.派工單號 = @P1
  OR I.訂單單號 = @P2
[SQL] 利用 UNION ALL 取代 OR 條件-1 
UNION ALL 取代 OR 條件
SELECT
  S.派工單號 ,
  I.訂單單號
FROM 派工單Table AS S
  LEFT JOIN 訂單明細Table AS I ON S.派工單號 = I.派工單號
WHERE S.派工單號 = @P1
UNION ALL
SELECT
  S.派工單號 ,
  I.訂單單號
FROM 派工單Table AS S
  JOIN 訂單明細Table AS I ON S.派工單號 = I.派工單號
WHERE I.訂單單號 = @P2
[SQL] 利用 UNION ALL 取代 OR 條件-2
執行計畫成本比較

[SQL] 利用 UNION ALL 取代 OR 條件-3

沒有留言:

張貼留言