我有下面的表,其中有两列是由SQL中的查询生成的:
Lookup Value Result
1 2
2 1
4 3
3 4
如您所见,它包含重复的结果。我只希望它显示第一行和第三行。有谁知道如何在SQL中执行此操作?
由于
答案 0 :(得分:2)
有几种方法。这是一个使用union all
:
select t.*
from t
where col1 < col2
union all
select t1.*
from t1
where col1 > col2 and
not exists (select 1 from t t2 where t1.col1 = t2.col2 and t1.col2 = t2.col1);
如果你总是知道两个对都存在(如你的样本数据),你可以使用:
select t.*
from t
where col1 < col2;
答案 1 :(得分:1)
SELECT DISTINCT
CASE WHEN Lookup Value < Result
THEN Lookup Value
ELSE Result
END as first,
CASE WHEN Lookup Value < Result
THEN Result
ELSE Lookup Value
END as second
FROM YourTable
答案 2 :(得分:0)
Create Table T (
[Lookup Value] int,
Result int
)
Insert into T values (1,2),(2,1),(4,3),(3,4)
Select distinct T.[Lookup Value], T.Result
From T
where T.[Lookup Value]<=T.Result