ERP報表-SQL常見問題

如何避免除零錯誤:
有時在計算如比率表的問題時,會遇到分母為零造成除零錯誤的產生,我們可以利用
NULL運算來避免此錯誤發生,因為任何數值除以NULL結果都會為NULL.因此以此延伸,
我們可以使用NULLIF的函數來處理
NULLIF(val1,val2)
若兩個相等則傳回NULL值,否則傳回第一個值

運算:
在SQL SERVER中整數/整數,結果也是整數,任何小數點都會被截斷,
這是因為當一個運算子結合兩個不同資料類型時,其優先順序會指定將低優先順序的資料類型轉換為高優先順序的資料類型.
ex:
1.7/3 result:2 datatype:int
2.7.0/3 or 7/3.0 result:2.333333 datatype:numeric
3.CAST(7 As numberic)/3 result:2.333333 datatype:numeric
4.CAST(1 As float)*7/3 result:2.33333333333333 datatype:float

溢位:
運算結果超過元資料型態的上限而發生此錯誤,而且常發生在SUM()函數上面,
ex:SUM(int),若傳入的欄位為int,則回傳的結果也為int,若此時超過int的最大值
便會產生溢位.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>