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

SQLServerでEXISTS論理演算子を使用する方法-SQLServer/TSQLチュートリアルパート125

    サブクエリに行が含まれている場合、ExistsはTRUEを返します。 EXISTSは、サブクエリで指定された行の存在をテストする場合に使用されます。

    dbo.Customerおよびdbo.Countryテーブルを作成し、EXISTSを使用してさまざまなシナリオのレコードを返します。

    Create table dbo.Customer
     (Id int,
      FName VARCHAR(50),
      LName VARCHAR(50),
      CountryShortName CHAR(2),
      Age tinyint)
    GO
    insert into dbo.Customer
    Values (
    1,'Raza','M','PK',20),
    (2,'Rita','John','US',12),
    (3,'Sukhi','Singh',Null,25),
    (4,'James','Smith','CA',60),
    (5,'Robert','Ladson','US',54),
    (6,'Alice','John','US',87),
    (7,'Raza','M','US',33),
    (8,'Dita','M','US',15),
    (9,'Adita','M','US',29)
    
    
    Create table dbo.Country ( 
    CId tinyint,
    CountryName VARCHAR(50),
    CountryShortName CHAR(2))
    go
    Insert into dbo.Country 
    Values 
    (1,'Pakistan','Pk'),
    (2,'United States of America','US')


    1)サブクエリに行が含まれている場合、EXISTSはTRUEを返します。

    そうです、サブクエリが任意の行を返し、EXISTSを使用した場合、外部クエリはすべての行を返します。

    dbo.Customer<から*を選択します。 br />
    WHERE Exists ( Select 1)
     
     
    SQLServerでEXISTSを使用する方法-SQLServer/TSQLチュートリアル

    サブクエリが静的クエリであることに気づきました(1を選択)。サブクエリが行を返し、EXISTSがTRUEを返したため、dbo.Customerテーブルのすべてのレコードが表示されます。

    2)EXISTSを使用してサブクエリと結合
    EXISTSのよりリアルタイムの例は、dbo.CountryTableからCountryShortNameと一致するdbo.Customerテーブルからすべてのレコードを検索する場合です。

    SELECT *
    FROM dbo.Customer a
    WHERE EXISTS
        (SELECT 1
         FROM dbo.Country b
         WHERE a.CountryShortName=b.CountryShortName)

    dbo.Customerとdbo.CountryのCountryShortNameを比較したことに気づきました。各外側の行はサブクエリの結果と比較され、一致する場合はその行が取得されます。

    同じ要件にIN句を使用できます。

    SELECT *
    FROM dbo.Customer a
    WHERE a.CountryShortName IN
        (SELECT b.CountryShortName
         FROM dbo.Country b
         WHERE a.CountryShortName=b.CountryShortName)
     
    SQLServerでEXISTSを使用して一致するレコードを返す方法-SQLServer/TSQLチュートリアル
     

    SQLServerでExistsとNotExitsを使用する方法
    1. MIN/MAXとORDERBYおよびLIMIT

    2. 条件が<>trueの場合にPostgreSQLがnull値を返さないのはなぜですか

    3. 複数の列を持つ単一の固定テーブルと柔軟な抽象テーブル

    4. SQLServerで主キーを持つすべてのテーブルを返す7つの方法