2011-08-09 6 views
1

ORDER BYのゼロエラーによる除算を避けるために、このSQLクエリを書き換えるにはどうすればよいですか?SQLゼロ除算

SELECT * FROM table WHERE age>'30' ORDER BY (a/b) DESC 
+2

'B'がゼロになることはありませんことを確認してください?もっと真剣に、 'b' *がゼロの時に何を注文したいですか? –

+0

@Oli Charlesworth特定の値ではなく、b = 0の場合は値を0にします。 –

答えて

9
ORDER BY CASE WHEN b != 0 THEN a/b ELSE 0 END DESC 
+5

おそらく 'b <> 0'(bは符号付きの値)。 –

+1

OPは、これがリストの一番下に 'B = 0'があるすべての行であることに注意してください。 – JNK

+0

彼のコメントによれば、それは彼が望むものです。 –