sql >> データベース >  >> RDS >> Sqlserver

from句またはwhere句で等結合を行う方がよいですか

    一般的に言えば、意味的な違いはありません。

    ただし、それが可能なエッジケースが1つあります。 (非推奨)GROUP BY ALL 以下に示すように、構成がクエリに追加されます。

    DECLARE @A TABLE(A_ID INT, DURATION DECIMAL(3,2) )
    INSERT INTO @A VALUES(1,2.00)
    
    DECLARE @B TABLE(A_ID INT)
    INSERT INTO @B VALUES(1)
    
    /*Returns one row*/
    SELECT *
    FROM @A A
    INNER JOIN @B B ON A.A_ID = B.A_ID
    WHERE A.DURATION = 3.00
    GROUP BY ALL A.A_ID, A.DURATION, B.A_ID
    
    /*Returns zero rows*/    
    SELECT *
    FROM @A A
    INNER JOIN @B B ON A.A_ID = B.A_ID  AND A.DURATION = 3.00
    GROUP BY ALL A.A_ID, A.DURATION, B.A_ID
    


    1. 文字列の最初または最後の文字である場合にのみ、文字列から特定の文字を削除する方法。

    2. xamppを使用してSQLサーバーをPHPに接続する方法は?

    3. 計算列でORDERBYすると、クエリが大幅に遅くなります-これを高速化できますか?

    4. SQL Developer 4