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

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

    ALL論理演算子は、一連の比較のすべてがTRUEの場合にTRUEを返します。 ALLは、スカラー値を単一の値の列セットと比較します。

    ALLを例で理解しましょう。

    シナリオ:

    2つのテーブルdbo.Customerとdbo.Customer1があるシナリオについて考えてみます。両方のテーブルの列はAgeです。 Ageがdbo.Customer1テーブルのAge列の最大値より大きいdbo.Customerテーブルからすべてのレコードを取得する必要がある場合。クエリは何になりますか。

    解決策:

    subqueryとmax関数を使用して、上記の要件のクエリを記述できます。最初にテーブルを作成しましょう。

    --Create Customer Table
    Create table dbo.Customer
     (Id int,
      FName VARCHAR(50),
      LName VARCHAR(50),
      CountryShortName CHAR(2),
      Age tinyint)
    GO
    --Insert Rows in dbo.Customer Table
    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)
    
    --Create dbo.Customer1 table
    Create table dbo.Customer1
     (Id int,
      FName VARCHAR(50),
      LName VARCHAR(50),
      CountryShortName CHAR(2),
      Age tinyint)
    GO
    --Insert rows in dbo.Customer1 Table
    insert into dbo.Customer1
    Values
    (7,'Raza','M','US',33),
    (8,'Dita','M','US',15),
    (9,'Adita','M','US',29)
     
    1)サブクエリとMax関数を使用して、Ageがdbo.Customer1テーブルの最大Age値よりも大きいdbo.Customerテーブルからすべてのレコードを取得します。


    2)SubQueryでALLを使用する
    上記の要件については、次のことができます。 ALL論理演算子を使用します。その場合、Max関数を使用する必要はありません。 ALLは、外部クエリ値をサブクエリの値のセットと比較します。> All、> ALLは、サブクエリによって返されるすべての値より大きい、つまり最大値より大きいことを意味します。

    Select * From dbo.Customer
    where Age> All ( Select age from dbo.Customer1)
    SQLServerですべての論理演算子を使用する方法-SQLServer/TSQLチュートリアル
     

    ALLを使用すると、=、<>、!=、>、> =、!>、<、<=、!<

    <などのさまざまな比較演算子を使用できます。 br />ビデオデモ:SQL/TSQLでALL論理演算子を使用する方法
    1. 出力句のSQLでフィルタリング

    2. OracleEXPAND_SQL_TEXTの使用

    3. SQLServerの一時テーブルが消える

    4. T-SQLを使用して外部キー制約を一時的に無効にするにはどうすればよいですか?