2014-03-12 76 views
0

例如,我有如下表:如何使用SQL同時對兩個相同的列進行排序?

name  code1  code2 
---------------------------- 
John   5   3 
Kevin  6   4 
Mary   3   9 

我想通過代碼1和代碼2取其大進行排序,這樣的願望的結果將是

name  code1  code2 
---------------------------- 
Mary   3   9 
Kevin  6   4 
John   5   3 

瑪麗是第一個原因是其有最大碼(9),凱文是第二次,因爲它的第二大碼(6)等等......

感謝

回答

3

您可以使用CASE這在大多數RDBMS如Oracle,MS-SQL服務器或MySQL的工作原理:

SELECT name, code1, code2 
FROM TableName 
ORDER BY CASE WHEN code1 > code2 THEN code1 ELSE code2 END DESC 

Demo

0

可以使用order by子句中的case聲明(除其他事項外)。這可以很好地濫用:

order by 
case 
    when code1 > code2 then code1 
    else code2 
end 
2

對於MySQL/PostgreSQL的/ ORACLE,有GREATEST功能。

SELECT * FROM your_table 
ORDER BY GREATEST(code1, code2) DESC 
相關問題