例如,我有下表:
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)等等......
由于
答案 0 :(得分:3)
您可以使用CASE
,它适用于大多数rdbms,如Oracle,MS-SQL Server或MySql:
SELECT name, code1, code2
FROM TableName
ORDER BY CASE WHEN code1 > code2 THEN code1 ELSE code2 END DESC
答案 1 :(得分:2)
对于mysql / postgresql / oracle,有GREATEST
函数。
SELECT * FROM your_table
ORDER BY GREATEST(code1, code2) DESC
答案 2 :(得分:0)
您可以在case
子句中使用order by
语句(以及其他内容)。这可以很好地滥用:
order by
case
when code1 > code2 then code1
else code2
end