2011-08-09 143 views
1

如何重寫此SQL查詢以避免在ORDER BY中除以零錯誤?SQL零分區

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

確保'B'是永遠爲零?更嚴重的是,當'b' *是*零時,您想要訂購什麼? –

+0

@Oli Charlesworth我希望如果b = 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

按照他的評論,這就是他想要的。 –