Databáze Firebird – smazání duplicitních řádků

Pokud máme v tabulce dva nebo více identických řádků, požijeme pro mazání jednoho z nich interní označení řádku RDB$DB_KEY:

DELETE FROM TABLE1 t1
 WHERE EXISTS (
 SELECT 1 FROM TABLE1 t2
 WHERE t1.COL1 = t2.COL1 and t1.COL2 = t2.COL2
 AND t1.RDB$DB_KEY < t2.RDB$DB_KEY
 );

Převzato z www.firebirdfaq.org.

Komentáře jsou uzavřeny.