CleverCode最近在導出報表的時候,在整數做減法的時候,發現整數減去null得到是null。這是一個細節問題,希望大家以后注意。
### 一,表中的數據
total,used都是整形,允許為空。

### 二,有問題的運算語句
減法問題
~~~
select
id,
total,
used,
(total - used) as have
from test_table
~~~

### 三,正確的寫法
使用ifnull,來處理null。
~~~
select
id,
ifnull(total,0) as total,
ifnull(used,0) as used,
(ifnull(total,0) - ifnull(used,0)) as have
from test_table
~~~

### 四,建議
1) 在設計表的時候,如果發現這列是需要運算的列,建議設置默認值,比如0;
2) 在整形列的運算的時候,不管是加,減,乘,除等。都需要使用ifnull,對列進行處理。否則報表數據就會錯。
這些都是細節小問題,大家一看就能明白,希望大家在細節上注意,否則一份財務表報計算出錯了,那后果是很嚴重的!
### 版權聲明:
1)原創作品,出自"CleverCode的博客",請勿轉載,否則追究版權法律責任。
2)原創地址:[http://blog.csdn.net/clevercode/article/details/47035975](http://blog.csdn.net/clevercode/article/details/47035975)。
3)分類地址(Mysql數據庫總結):[http://blog.csdn.net/clevercode/article/category/3262205](http://blog.csdn.net/clevercode/article/category/3262205)(博客持續增加,關注請收藏)
4)歡迎大家關注我博客更多的精彩內容:[http://blog.csdn.net/CleverCode](http://blog.csdn.net/CleverCode)。