Revision: 8381
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 17, 2008 17:33 by stews
Initial Code
WITH old_set AS (SELECT first_name, last_name FROM addresses WHERE status = 1), new_set AS (SELECT first_name, last_name FROM temp_load_table) SELECT COUNT(src1) AS in_old_set, COUNT(src2) AS in_new_set, first_name, last_name FROM (SELECT first_name, last_name, 1 AS src1, TO_NUMBER(NULL) AS src2 FROM old_set UNION ALL SELECT first_name, last_name, TO_NUMBER(NULL) AS src1, 2 AS src2 FROM new_set) GROUP BY first_name, last_name HAVING COUNT(src1) <> COUNT(
Initial URL
Initial Description
This compares selected columns between 2 queries, using the WITH clause. It lists the rows and values that are different between the two sources. This is from Tom Kyte (www.asktom.com). I can't say I understand exactly how it works, but it's much faster than other methods I've seen, because it only looks through each query once.
Initial Title
Efficiently compare results from two queries
Initial Tags
Initial Language
PL/SQL