检查两个SQL查询是否返回等效数据

时间:2013-10-05 12:46:37

标签: mysql sql postgresql jdbc

我需要检查两个查询是否从特定实例返回等效数据(我意识到这并不意味着它们在所有实例中都是等效的)。但是,我不关心所述数据的排序。

我目前正在使用:

(userQuery EXCEPT answerQuery) UNION ALL (answerQuery EXCEPT userQuery)

然而,这告诉我:

"SELECT first_name, last_name FROM employee" != "SELECT last_name, first_name FROM employee"
"SELECT id, first_name FROM employee ORDER BY id" != "SELECT id, first_name FROM employee"

基本上,无论列或属性的排序如何,它都应该返回正确的

1 个答案:

答案 0 :(得分:1)

这样的事情有帮助吗?

SELECT * 来自[query1] WHERE NOT EXISTS(SELECT * FROM [query2] WHERE [query1 key] = [query2 key])

然后以相反的方式将相同的查询联合起来。如果它什么都不返回,那么两个查询都是等价的。