sql >> Database teknologi >  >> RDS >> Sqlserver

Find ændrede rækker (sammensat nøgle med nuller)

ANSI SQL har IS [NOT] DISTINCT FROM konstruktion, der endnu ikke er implementeret i SQL Server (Forbindelsesanmodning ).

Det er muligt at simulere denne funktionalitet i SQL Server ved hjælp af EXCEPT /INTERSECT imidlertid. Begge disse behandler NULL lige i sammenligninger. Du ønsker at finde rækker, hvor nøglekolonnerne er de samme, men værdikolonnerne er forskellige. Så dette burde gøre det.

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. Hvordan virker det ved at bruge en PostgreSQL-database med Docker og Flask?

  2. postgres truncate er langsom

  3. Hvordan programmerer man en MySQL-trigger til at indsætte række i en anden tabel?

  4. Ideel felttype til binære data med fast bredde