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

変更された行を検索 (NULL を含む複合キー)

    ANSI SQL には IS [NOT] DISTINCT FROM があります まだ SQL Server に実装されていない構造 (接続リクエスト )。

    この機能をシミュレート EXCEPT を使用して SQL Server で /INTERSECT でも。これらはどちらも NULL を扱います 比較すると等しい。キー列が同じで、値列が異なる行を見つけたいと考えています。

    SELECT *
    FROM   SourceTable S
           JOIN DestinationTable D
             ON S.Key1 = D.Key1
                /*Join the key columns on equality*/
                AND NOT EXISTS (SELECT S.Key2,
                                       S.Key3
                                EXCEPT
                                SELECT D.Key2,
                                       D.Key3)  
                 /*and the value columns on unequality*/
                AND NOT EXISTS (SELECT S.Value1,
                                       S.Value2
                                INTERSECT
                                SELECT D.Value1,
                                       D.Value2)  
      

    1. 表1からすべての列を選択し、?でグループ化された表2から1つの列を選択します。

    2. 大規模なレコードのbulk_createのベストプラクティス

    3. mysqlで正確な文字列を検索する方法

    4. Oraclevarchar2からnvarchar2への変換