我讀過有關nullif
,但一直沒能放在一起SELECT
說法正確地使用它:如何避免在ms-sql select語句中除以0?
Select (num/total) as percent ...
如果總爲0,我想返回null。我該如何修改陳述?
如果我說
select (num/nullif(total, 0)) as percent ...
是什麼意思由空分?
我讀過有關nullif
,但一直沒能放在一起SELECT
說法正確地使用它:如何避免在ms-sql select語句中除以0?
Select (num/total) as percent ...
如果總爲0,我想返回null。我該如何修改陳述?
如果我說
select (num/nullif(total, 0)) as percent ...
是什麼意思由空分?
你可以使用CASE
:
SELECT [percent] = CASE WHEN total = 0 THEN NULL ELSE (num/total) END
FROM Table
要回答你的問題的第二部分:
是什麼意思由空分?
的算術計算的,它使用一個NULL
值爲NULL
,或者put it another way其結果是:
由於空不是數據值,但是對於一個未知的值的標記,使用數學運算符 on Null結果爲未知值, ,其由Null表示。
所以聲明
select (num/nullif(total, 0)) as percent
會如果total = 0
返回NULL
。 Tim提出的使用CASE
是一種同樣有效的處理問題的方法。
[此答案](http://stackoverflow.com/a/858492/238688)相關的問題可能會有用。 –