2011-08-11 9 views
2

は、次の表を考えてみましょう:SQLでmax(a、b)を注文する方法は?

id a b 
-------------- 
1  5 1 
2  2 3 
3  4 2 
4  3 6 
5  0 1 
6  2 2 

結果がなるように、私は、降順でmax(a,b)でそれを注文したいと思います:

id a b 
-------------- 
4  3 6 
1  5 1 
3  4 2 
2  2 3 
6  2 2 
5  0 1 

、このような順序付けを実行するSQLクエリになりますどのような?

答えて

9

使用GREATEST:

SELECT * 
FROM table 
ORDER BY GREATEST(a, b) DESC 
+0

ストレートポイントに!ありがとう:) –

+2

両方の値がnullでなければならないことに注意してください。例:select greater(null、3)はnullを返します。その場合、合体を使用する必要があります。 (coalesce(null、0)、coalesce(null、0))が0を返します。 –

+1

@nick rulez:ああ! mysql ...あなたはなぜそれが不合理なときにそれを使用するのだろうかと思う。しかし、言及してくれてありがとう、+1 –

関連する問題