如何检查列表是否具有任何不同的值

Lyn*_*ler 4 sql t-sql sql-server logic operators

我有一个如下表:

(date1, date2, date3, date4, date5)
Run Code Online (Sandbox Code Playgroud)

我想检查这些日期中的任何一个是否与其他日期不同.简单的解决方案是:

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
Run Code Online (Sandbox Code Playgroud)

任何重要的解决方案?

Joe*_*lli 5

除此之外,你的琐碎案例可以真正简化为公正

WHERE date1 <> date2
   OR date1 <> date3
   OR date1 <> date4
   OR date1 <> date5
Run Code Online (Sandbox Code Playgroud)

使用DeMorgan定律,这与

WHERE NOT(date1 = date2
      AND date1 = date3
      AND date1 = date4
      AND date1 = date5)
Run Code Online (Sandbox Code Playgroud)

然后由传递特性的的平等关系,我们就知道,如果DATE1等于其他4个值,那么所有5彼此相等.