我有一个表,其中包含对应的每一行。例如:
┏━━━━━━━━━━┳━━━━━━━━━━┓
┃ Column 1 ┃ Column 2 ┃
┣━━━━━━━━━━╋━━━━━━━━━━┫
┃ A ┃ B ┃
┣━━━━━━━━━━╋━━━━━━━━━━┫
┃ B ┃ A ┃
┗━━━━━━━━━━┻━━━━━━━━━━┛
我只想要一个组合:
┏━━━━━━━━━━┳━━━━━━━━━━┓
┃ Column 1 ┃ Column 2 ┃
┣━━━━━━━━━━╋━━━━━━━━━━┫
┃ A ┃ B ┃
┗━━━━━━━━━━┻━━━━━━━━━━┛
这样的陈述会是什么样的?
答案 0 :(得分:3)
这是一种方式:
select *
from t
where column1 < column2;
这假设所有对确实在表中(或者至少每对中的第一对都在表中)。
或者,这是另一种方式:
select least(column1, column2) as column1, greatest(column1, column2) as column2
from t
group by least(column1, column2), greatest(column1, column2);
即使表格中只有一半配对,这也有效。