在合并列上排序而不合并列

时间:2014-07-21 18:03:59

标签: sql sql-server

示例表:

id | val1 | val2
1  |   100|  50
2  |    90|  50
3  |    80|  50
4  |    70|  50
5  |    60|  91
6  |    50|  92
7  |    40|  93
8  |    30|  94

预期结果:

id | val1 | val2
1  |   100|  50
8  |    30|  94
7  |    40|  93
6  |    50|  92
5  |    60|  91
2  |    90|  50
3  |    80|  50
4  |    70|  50

我正在尝试在某种合并列上对表进行排序,而不是实际合并列。当我尝试使用select * from exampletable order by val1 desc, val2 desc之类的内容时,val1会根据val2进行排序,val1时只有id

我希望它做的是通过两列的组合排序,但不要重复{{1}}列。

1 个答案:

答案 0 :(得分:1)

这听起来像早期的编程问题。如果我理解了你的意思,你就想要按两列中最大的一列排序。因此,试试这个:

SELECT *
FROM example
ORDER BY
  CASE
    WHEN val1 > val2 THEN val1
    ELSE val2
  END