我有一个Sql语句,其结果类似于
TagNo1 TagNo2
---------------------------
63516 63546
63546 63516
如何设置我只需要一条记录。例如
TagNo1 TagNo2
---------------------------
63516 63546
或其他,没有区别。因为对我来说是一样的吗?
谢谢
答案 0 :(得分:4)
如果TagNo1小于或等于TagNo2,则返回一行。或者,如果切换的值不存在。
select distinct TagNo1, TagNo2
from tablename t1
where TagNo1 <= TagNo2
or not exists (select 1 from tablename t2
where t1.TagNo1 = t2.TagNo2
and t1.TagNo2 = t2.TagNo1)
如果TagNo1 = TagNo2,请select distinct
以避免重复。
或使用case
表达式:
select distinct case when TagNo1 <= TagNo2 then TagNo1 else TagNo2 end,
case when TagNo1 >= TagNo2 then TagNo1 else TagNo2 end
from tablename
答案 1 :(得分:1)
declare @t table (col1 int, col2 int);
insert into @t values (63516, 63546), (63546, 63516);
select col1, col2
from @t
where col1 <= col2
union
select col2, col1
from @t
where col2 < col1