0

私の理解では、ほとんどの OR 条件は UNION ALL でパフォーマンスが向上する場合に置き換えることができます。しかし、これら 2 つのクエリでは、カウント ('1') は同じではありません。なぜそうですか-ここで何かが足りないのですか。それは同じではないはずです。誰かが格差を説明できますか

SQL # 1

sel 
D1.COL_1_CD, D1.COL_1_DESC,
        D2.COL_2_CD, D2.COL_2_DESC, D3.COL_3_CD, D3.COL_3_DESC, D4.COL_4_CD,
        D4.COL_4_DESC, D5.COL_5_CD, D5.COL_5_DESC,
        d1.COL_1_CD_SYS_ID,
        d2.COL_2_CD_SYS_ID,
        d3.COL_3_CD_SYS_ID,
        d4.COL_4_CD_SYS_ID,
        d5.COL_5_CD_SYS_ID


from
 D1,
 D2,  D3,  D4,
         D5

        where
        D1.COL_1_CD1=D2.COL_2_CD1  
    and
        D2.COL_2_CD1=D3.COL_3_CD1 
    and 
        D4.COL_4_CD1=D5.COL_5_CD1 
        and 


 (D1.COL_1_CD in ('707') 
    or   D2.COL_2_CD in ('707') 
    or  D3.COL_3_CD in ('707') 
    or  D4.COL_4_CD in ('707') 
    or   D5.COL_5_CD in ('707') ) 

    group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

SQL#2

sel 
D1.COL_1_CD, D1.COL_1_DESC,
        D2.COL_2_CD, D2.COL_2_DESC, D3.COL_3_CD, D3.COL_3_DESC, D4.COL_4_CD,
        D4.COL_4_DESC, D5.COL_5_CD, D5.COL_5_DESC,
        d1.COL_1_CD_SYS_ID,
        d2.COL_2_CD_SYS_ID,
        d3.COL_3_CD_SYS_ID,
        d4.COL_4_CD_SYS_ID,
        d5.COL_5_CD_SYS_ID


from
 D1,
 D2,  D3,  D4,
         D5

        where
        D1.COL_1_CD1=D2.COL_2_CD1  
    and
        D2.COL_2_CD1=D3.COL_3_CD1 
    and 
        D4.COL_4_CD1=D5.COL_5_CD1 
        and 


 D1.COL_1_CD in ('707') 

UNION ALL 

sel 
D1.COL_1_CD, D1.COL_1_DESC,
        D2.COL_2_CD, D2.COL_2_DESC, D3.COL_3_CD, D3.COL_3_DESC, D4.COL_4_CD,
        D4.COL_4_DESC, D5.COL_5_CD, D5.COL_5_DESC,
        d1.COL_1_CD_SYS_ID,
        d2.COL_2_CD_SYS_ID,
        d3.COL_3_CD_SYS_ID,
        d4.COL_4_CD_SYS_ID,
        d5.COL_5_CD_SYS_ID


from
 D1,
 D2,  D3,  D4,
         D5

        where
        D1.COL_1_CD1=D2.COL_2_CD1  
    and
        D2.COL_2_CD1=D3.COL_3_CD1 
    and 
        D4.COL_4_CD1=D5.COL_5_CD1 
        and 


   D2.COL_2_CD in ('707')  


UNION ALL 
.....<same query>
D3.COL_3_CD in ('707')

UNION ALL 

.....<same query>
D4.COL_4_CD in ('707')

UNION ALL 
.....<same query>
D5.COL_5_CD in ('707')

行数が同じではありません。同等の UNION ALL として変換できる OR ロジックの種類。

4

0 に答える 0