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 a 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)