Search code examples
sqloracle-databaseselect

Check if two "select"s are equivalent


Is there a way to check if two (non-trivial) select are equivalent?

Initially I was hoping for a formally equivalence between two selects, but the answers in proving-sql-query-equivalency stop me.

For my actual need I can just check if the (actual) results of two selects are the same.


Solution

  • If you want to compare the query results try the following:

    (select * from query1 MINUS select * from query2) 
    UNION ALL
    (select * from query2 MINUS select * from query1)
    

    This will result in all rows that are returned by only one of the queries.