我有一个如下表:
(date1, date2, date3, date4, date5)
我想检查这些日期是否与其他日期不同。 简单的解决方案是:
WHERE date1 <> date2
OR date1 <> date3
OR date1 <> date4
OR date1 <> date5
OR date2 <> date3
OR date2 <> date4
OR date2 <> date5
OR date3 <> date4
OR date3 <> date5
OR date4 <> date5
有什么重要的解决方案吗?
最佳答案
顺便说一句,您的琐碎案例确实可以简化为
WHERE date1 <> date2
OR date1 <> date3
OR date1 <> date4
OR date1 <> date5
使用DeMorgan's Law ,这与
相同WHERE NOT(date1 = date2
AND date1 = date3
AND date1 = date4
AND date1 = date5)
然后按 transitive property equality relation的,我们知道如果 date1 等于其他 4 个值,那么所有 5 个值都彼此相等。
关于sql - 如何检查列表是否具有任何不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3470690/