sql的新手..
寻找比较包含相同值的3个字段的最佳方法。如果field1 = field2 = field3不显示数据。类似下面的内容,但在使用此语法时收到错误。
SELECT * FROM [Customers]
where customername <> name <> name2
答案 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