难题是选择独特的对.以下示例中的语法适用于Mssql
declare @t table (a int, b int)
insert into @t (a,b) values (1,2)
insert into @t (a,b) values (2,1)
insert into @t (a,b) values (1,3)
insert into @t (a,b) values (3,1)
insert into @t (a,b) values (5,6)
select * from @t -- it outputs 5 records.
Run Code Online (Sandbox Code Playgroud)
我需要获得唯一的对,而不管顺序a,b,这应该给我三条记录
输出应该是
(1,2),(1,3),(5,6)
Run Code Online (Sandbox Code Playgroud)
我没有想法,会很感激帮助:)
Mar*_*ith 10
单向(演示)将是
SELECT DISTINCT v.a,
v.b
FROM @t
CROSS APPLY (VALUES(a,b),
(b,a)) v(a, b)
WHERE v.a <= v.b
Run Code Online (Sandbox Code Playgroud)
select distinct
case when a<b then a else b end
,case when a<b then b else a end
from @t
;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |