如何比较3个不相等的字段?

时间:2015-12-07 18:52:37

标签: sql oracle

sql的新手..

寻找比较包含相同值的3个字段的最佳方法。如果field1 = field2 = field3不显示数据。类似下面的内容,但在使用此语法时收到错误。

SELECT * FROM [Customers]
where customername <> name <> name2

3 个答案:

答案 0 :(得分:2)

通常,必须单独列出每个比较,例如

SELECT * FROM [Customers] where customername <> name and customername <> name2 and name <> name2

答案 1 :(得分:2)

在SQL的任何方言中,我都要小心使用此构造的NULL值。写作很有诱惑力:

where customername <> name and customername <> name2 and name <> name2

如果任何值为NULL,这将始终过滤掉行。如果您希望忽略NULL,那么您需要更复杂的逻辑。也许:

where (customername <> name or customername is null or name is null) and 
      (customername <> name2 or customername is null or name2 is null and
      (name <> name2 or name is null or name2 is null)

这可能是也可能不是你想要的。我只想指出,NULL值在您的逻辑中被过滤掉,无论任何比较是真还是假。

答案 2 :(得分:0)

尝试这个技巧,

SELECT (CASE WHEN  A NOT IN (SELECT B FROM T 
                            UNION ALL 
                            SELECT C FROM T
                           ) ) A From T