Daniel John Debrunner <[EMAIL PROTECTED]> writes: > Rick Hillegas wrote: > >> One way to solve this problem would be to put a filtering function >> in the WHERE clause of the driving SELECT statement. Something like >> this: >> INSERT INTO targetTable >> SELECT * FROM sourceTable >> WHERE isFirstInstance( tastyColumn1, tastyColumn2 ) = 1 >> Here isFirstInstance is a function which returns 1 the first time it >> sees a given key combination and returns 0 on all subsequent >> sightings. You, of course, have to write this user function. > > Any thoughts on how to do that? Since such calls are stateless how > would you identify it's the first call for a query execution?
I first thought of using a tmp table containing just the two columns, and just opening a result set on the first table, loop, and copying a row to destination table if not present yet in tmp table, else insert it there too. One could hide that check inside a function like Rick suggests? Tried in vain to come up with a clever single INSERT, though. Dag
