sql >> Databasteknik >  >> RDS >> Sqlserver

Hitta ändrade rader (sammansatt nyckel med nollor)

ANSI SQL har koden IS [NOT] DISTINCT FROM konstruktion som inte har implementerats i SQL Server ännu (Anslutningsbegäran ).

Det är möjligt att simulera den här funktionen i SQL Server med EXCEPT /INTERSECT i alla fall. Båda dessa behandlar NULL lika i jämförelser. Du vill hitta rader där nyckelkolumnerna är desamma men värdekolumnerna är olika. Så det här borde göra 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. MySQL Cross Table Constraint

  2. Hur kan jag ange ett indextips i Entity Framework?

  3. Hur man implementerar ora_hash (såddbar hash som delar upp alla SQL-datatyper i n hinkar)

  4. Hur skapar man en mysql kubernetes-tjänst med en lokalt monterad datavolym?