SQL OrderBy两列为一

时间:2017-07-04 22:10:24

标签: sql sql-server

我有一个包含两列的表:高度和宽度

根据高度或宽度

以递增方式对此表进行排序的最简单方法是什么?

换句话说,它会从每行的高度和宽度中选择最小值,并根据这个数字对其进行排序?

提前致谢!

2 个答案:

答案 0 :(得分:5)

您可以在order by子句中使用case语句,如下所示:

select *
from table
order by 
   case when Width > Height then Height else Width end,
   case when Width > Height then Width else Height end

答案 1 :(得分:1)

如果您只想对最小的列值进行排序而忽略另一列:

SELECT
    *
FROM
    SomeTable
ORDER BY
    CASE
        WHEN Height < Width THEN Height
        ELSE Width
    END