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

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

    一連の比較のいずれかがTRUEの場合、ANY論理演算子はTRUEを返します。 ANYは、スカラー値を単一の列の値のセットと比較します。

    注:SOMEとANYは同等です。以下の例では、ANYを使用します。

    シナリオ:

    2つのテーブルdbo.Customerとdbo.Customer1があるとしましょう。両方のテーブルの列はAgeです。 Ageがdbo.Customer1テーブルのAge列から少なくとも1つ以上の値であるdbo.Customerテーブルからすべてのレコードを取得する必要がある場合。

    解決策:

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

    --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',10),
    (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)サブクエリと最小関数を使用して、Ageがminより大きいdbo.Customer1テーブルのAge値であるdbo.Customerテーブルからすべてのレコードを取得します。
     
    Select * From dbo.Customer
    where Age> ( Select MIN(age) from dbo.Customer1)
     
     
      
     2)必要な結果を取得するには、ANYを使用します。
    サブクエリでMin関数を使用する代わりに、ANYを使用できます。 Ageがdbo.CustomerのAge列のどの値よりも大きいdbo.Customerからすべての行を取得するため、>Anyを使用します。
    > ANYは、少なくとも1つの値よりも大きい、つまりより大きいことを意味します。最小値よりも大きい。

    Select * From dbo.Customer
    where Age>ANY ( Select age from dbo.Customer1)
     
      
     最初のクエリで返されたものと同じレコードを取得しました。
    INと等しい=ANYを使用する場合。 ANYを使用すると、=、<>、!=、>、> =、!>、<、<=、!<



    ビデオなどのさまざまな比較演算子を使用できます。デモ:SQLServerで任意の/いくつかの論理演算子を使用する方法

    1. regexp_substrは空の位置をスキップします

    2. MySQLでピボットテーブルの出力を返すにはどうすればよいですか?

    3. 結合ステートメント内のMYSQLSelectMAX Date

    4. MySQLの名前変更列