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

T-SQL:テーブルにない値リストの値を選択する方法は?

    SQLServer2008の場合

    SELECT email,
           CASE
             WHEN EXISTS(SELECT *
                         FROM   Users U
                         WHERE  E.email = U.email) THEN 'Exist'
             ELSE 'Not Exist'
           END AS [Status]
    FROM   (VALUES('email1'),
                  ('email2'),
                  ('email3'),
                  ('email4')) E(email)  
    

    以前のバージョンでは、派生テーブルUNION ALLで同様のことを行うことができます -定数を入力します。

    /*The SELECT list is the same as previously*/
    FROM (
    SELECT 'email1' UNION ALL
    SELECT 'email2' UNION ALL
    SELECT 'email3' UNION ALL
    SELECT 'email4'
    )  E(email)
    

    または、質問で指定された正確な結果セットではなく、存在しないもの(タイトルで示されている)だけが必要な場合は、これを行うだけです

    SELECT email
    FROM   (VALUES('email1'),
                  ('email2'),
                  ('email3'),
                  ('email4')) E(email)  
    EXCEPT
    SELECT email
    FROM Users
    


    1. mysqlで一意のキーを一緒に変更します

    2. 複数の行を文字列として返すSELECT

    3. Oracle ODP.NET接続文字列:データソースには何が入りますか?

    4. C#からOdbcを使用してOracleパッケージ関数を呼び出す