Weblog @ rebex.cz

Weblogy na webu Rebexu
Welcome to Weblog @ rebex.cz Sign in | Help
in Search

Weblog @ Rebex.cz :: Honza Šotola

nepravidelné poznámky .NET vývojáře

Porovnání dvou SQL tabulek pomocí jednoho řádku v T-SQL

Potkal jsem článek o velmi elegantním způsobu, jak porovnat obsah dvou SQL tabulek v MS SQL Serveru 2005.

Využívá klíčových slov EXCEPT INTERSECT, která jistě každý zná...
...až nás pár opozdilců, s nimiž se o tuto informaci rád podělím:

Např. následující dotaz

select * from table1 except select * from table2

vypíše všechny řádky z table1, které se neshodují s žádným řádkem table2

kdežto

select * from table1 intersect select * from table2

vypíše všechny řádky z table1, pro které je nějaký totožný řádek v table2.

Samozřejmě kombinovat oba přístupy, používat omezený výčet sloupců apod.

Jinými slovy zmíněná dvě klíčová slova přináší příjemné rozšíření fráze IN,  která pracuje jen nad jedním sloupcem
(což lze samozřejmě použít i k jiným věcem, než porovánvání dvou tabulek)

Published 23. září 2008 20:29 by honzas
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

mirab said:

Potřeboval bych poradit, jak porovnat dva stavy jedné tabulky. Tabulku každou noc vymažu a znovu naplním, ale bylo by efektivnější provádět to pouze v případě, že došlo k nějaké změně.

Díky za nějaký nápad

dubna 29, 2009 15:15

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems