一、需求
有些数据写入表中时,a\b两个字段中的值,会才能在交叉存储的问题,
比如:
a b
1 2
2 1
现在想在查询结果中,值保留 1 2 一条数据,顺序可忽略。
二、测试
1、建表
create table mytest
(
a Int32,
b Int32
)
ENGINE=Mergetree
order by (a);
2、插入测试数据
insert into mytest values (1,2);
insert into mytest values (3,4);
insert into mytest values (4,3);
insert into mytest values (5,6);
insert into mytest values (5,6);
insert into mytest values (7,8);
insert into mytest values (9,10);
insert into mytest values (11,12);
insert into mytest values (12,11);
insert into mytest values (13,14);
3、查询并去重
select distinct
case when a>=b then b else a end AA,
case when a>=b then a else b end BB
from mytest;
4、结果如下
AA BB
1 2
3 4
5 6
7 8
9 10
11 12
13 14