在 SQL 中,一组列必须具有相等值的条件有点重复:
SELECT * FROM t
WHERE col1 = col2
AND col2 = col3
AND col3 = col4;
但这还没有“没有两个值可以相等”类型条件的一半那么糟糕:
SELECT * FROM t
WHERE col1 != col2
AND col1 != col3 AND col2 != col3
AND col1 != col4 AND col2 != col4 AND col3 != col4;
我可以在不显式比较每对列的情况下重写此查询吗?如果可以,如何?
在一个完美的世界里,我一开始就没有理由这样做。除此之外,适用于 Oracle 11g 中无限数量列的解决方案会很好。我对 DBMS 有一定的灵活性,我愿意接受(建设性的)建议。