比較 SQL Server 表:找出差異的綜合指南
辨識兩個 SQL Server 表之間的資料不一致需要一種方法來找出任一表所獨有的行。以下查詢有效地實現了這一點:
<code class="language-sql">(SELECT * FROM table1 EXCEPT SELECT * FROM table2) UNION ALL (SELECT * FROM table2 EXCEPT SELECT * FROM table1)</code>
查詢細分:
EXCEPT
運算子隔離 table1
中存在但 table2
中不存在的行。 UNION ALL
將第一個 EXCEPT
操作的結果與 EXCEPT
上的鏡像 table2
操作合併,以揭示所有差異。 範例:
假設有兩個表 TempTestData
和 RealData
,每個表格都有欄位 FirstName
、LastName
和 Product
。若要發現這些欄位中具有不同值的行,請使用下列查詢:
<code class="language-sql">(SELECT * FROM TempTestData EXCEPT SELECT * FROM RealData) UNION ALL (SELECT * FROM RealData EXCEPT SELECT * FROM TempTestData)</code>
此查詢將傳回兩個表中任何指定列中表現出變化的所有行。
重要注意事項:
NULL
值的表,與 LEFT JOIN
相比,FULL OUTER JOIN
或 NULL
提供更強大的 EXCEPT
比較處理。 以上是如何找出兩個 SQL Server 表之間的差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!