我在尝试解决这个问题时遇到了很多麻烦。有人可以帮助我吗?
我有一个包含 colA 和 colB 的表,这些是每一行的值:
colA ColB
2 1
1 2
在此表中进行选择时,我只想检索一行,因为值是倒置的。 如果 2 表示 1,则 1 表示 2,因此它们相等,我不希望返回两行。
有什么方法可以进行 SQL 查询并获得我想要的结果吗? 例如,只有一行 colA = 1,colB = 2。
最佳答案
如果只有2列:
WITH t(colA, colB) AS (
VALUES (1,2), (2,1)
)
SELECT DISTINCT least(colA, colB), greatest(colA, colB)
FROM t;
编辑:正如 Daniel 所概述的,虽然这可能会完成工作,但这种方法不利于过滤,因为它会更改原始数据。
关于sql - 消除具有反转值的列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26682099/