Sql 仅选择两列的一个组合
我有一个表格,每一行都包含对应的内容。例如:Sql 仅选择两列的一个组合,sql,Sql,我有一个表格,每一行都包含对应的内容。例如: ┏━━━━━━━━━━┳━━━━━━━━━━┓ ┃ Column 1 ┃ Column 2 ┃ ┣━━━━━━━━━━╋━━━━━━━━━━┫ ┃ A ┃ B ┃ ┣━━━━━━━━━━╋━━━━━━━━━━┫ ┃ B ┃ A ┃ ┗━━━━━━━━━━┻━━━━━━━━━━┛ 我只想要一个组合: ┏━━━━━━━━━━┳━━━━━━━━━━┓ ┃ Column 1 ┃ Column 2 ┃
┏━━━━━━━━━━┳━━━━━━━━━━┓
┃ Column 1 ┃ Column 2 ┃
┣━━━━━━━━━━╋━━━━━━━━━━┫
┃ A ┃ B ┃
┣━━━━━━━━━━╋━━━━━━━━━━┫
┃ B ┃ A ┃
┗━━━━━━━━━━┻━━━━━━━━━━┛
我只想要一个组合:
┏━━━━━━━━━━┳━━━━━━━━━━┓
┃ Column 1 ┃ Column 2 ┃
┣━━━━━━━━━━╋━━━━━━━━━━┫
┃ A ┃ B ┃
┗━━━━━━━━━━┻━━━━━━━━━━┛
这样的陈述会是什么样子?这里有一种方法:
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);