On 9/9/07, Håkan Jacobsson <hakan.jacobsson99@xxxxxxxxxxxx> wrote: > Merlin, > > Its just about three columns - not any column. Two columns are > varchars and the third is > a date. The date column value is NULL for the rows for which > I want to delete the duplicates. getting ready to go on vacation :). The idea is you want to write a query that pulls out the data you want to keep. If you have a table with 6 fields, f1 though f6 and you only want one record with identical values of f1, f2, f3, you might do: begin; create temp table scratch as select f1, f2, f3, max(f4), max(f5), max(f6) from foo group by f1, f2, f3; truncate foo; insert into foo select * from scratch; commit; You can replace max() with any suitable aggregate you deem gets you the best data out of the record. If you are feeling really clever, you can write a custom aggregate for the record type (it's easier than you think!) merlin ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your message can get through to the mailing list cleanly