SQL Server链查询

时间:2016-01-27 14:40:57

标签: sql sql-server

我有一张桌子,如下表1所示:

A   B   Year    Revenue
100 200 2012    100000
100 300 2015    100001
200 100 2012    100000
200 300 2012    22222
200 300 2015    22222
300 100 2012    122
300 200 2012    23444

现在,我想在不使用任何存储过程的情况下使用如下表2,只需要在SQL Server中使用SELECT查询:

A   B   Year    Revenue
100 200 2012    100000
200 100 2012    100000
100 300 2015    100001
300 100 2012    122
200 300 2012    22222
200 300 2015    22222
300 200 2012    23444

1 个答案:

答案 0 :(得分:4)

如果我理解正确,您希望成对的A / B值一起出现。您可以使用ORDER BY和一些逻辑将它们组合在一起:

SELECT t.*
FROM t
ORDER BY (CASE WHEN A < B THEN A ELSE B END),
         (CASE WHEN A < B THEN B ELSE A END),
         A;