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

IF EXIST(SELECT 1 FROM ) を IF EXIST(SELECT TOP 1 FROM ) に変更すると副作用がありますか?

    いいえ、違いはないはずです。 EXISTS 一致する行が 1 つ見つかるとすぐに救済されます。そのため、常に優先されます。 (select COUNT(*) from ...) > 0 - COUNT すべての行が考慮されます。

    次の 4 つのクエリを作成した場合:

    select * from sys.objects
    select top 1 * from sys.objects
    select 1 where exists(select * from sys.objects)
    select 1 where exists(select top 1 * from sys.objects)
    

    実行計画をオンにすると、2 番目のクエリが TOP を含む実行計画を生成することがわかります。 オペレーター。 3 番目と 4 番目のクエリは 同一 を生成します 予定。 TOP は無視されます。



    1. mysqlnodejsのIN句

    2. MySQL group_concat()のcaseステートメント値による順序付け

    3. GoogleAppEngineからSSL+Golangを使用してGoogleCloudSQLに接続できません

    4. 初心者向けのSSISチュートリアル:なぜ、何を、どのように?