1. 程式人生 > >Mysql整數運算NULL值處理注意點

Mysql整數運算NULL值處理注意點

CleverCode最近在匯出報表的時候,在整數做減法的時候,發現整數減去null得到是null。這是一個細節問題,希望大家以後注意。

1 表中的資料

total,used都是整形,允許為空。


2 有問題的運算語句

減法問題
select 
	id,
	total,
	used,
	(total - used) as have 
from test_table

3 正確的寫法

使用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



4 建議

1) 在設計表的時候,如果發現這列是需要運算的列,建議設定預設值,比如0; 2) 在整形列的運算的時候,不管是加,減,乘,除等。都需要使用ifnull,對列進行處理。否則報表資料就會錯。 這些都是細節小問題,大家一看就能明白,希望大家在細節上注意,否則一份財務表報計算出錯了,那後果是很嚴重的!

4 建議

相關推薦

Mysql整數運算NULL處理注意

CleverCode最近在匯出報表的時候,在整數做減法的時候,發現整數減去null得到是null。這是一個細節問題,希望大家以後注意。 1 表中的資料 total,used都是整形,允許為空。 2 有問題的運算語句 減法問題 select id, total,

MySQL UNION、排序、分組、連線、NULL處理和正則表示式

UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SELECT pCode FROM orderdetail ORDER BY p

吳裕雄 20-MySQL NULL 處理

MySQL NULL 值處理我們已經知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句來讀取資料表中的資料,但是當提供的查詢條件欄位為 NULL 時,該命令可能就無法正常工作。為了處理這種情況,MySQL提供了三大運算子:IS NULL: 當列的值是 NULL,此運算子返回 true。IS

MySQL UNION、排序、分組、連線、NULL處理和正則表示式

UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SEL

DB-MySQLMySQL NULL 處理

ylbtech-DB-MySQL:MySQL NULL 值處理   1.返回頂部 1、 MySQL NULL 值處理 我們已經知道 MySQL 使用 SQL SELECT 命令及 WHERE

MySQL NULL 處理(轉自https://www.w3cschool.cn/mysql/mysql-null.html)

MySQL NULL 值處理 我們已經知道MySQL使用 SQL SELECT 命令及 WHERE 子句來讀取資料表中的資料,但是當提供的查詢條件欄位為 NULL 時,該命令可能就無法正常工作。 為了處理這種情況,MySQL提供了三大運算子: IS NULL: 當列的值是NULL,此運算子返回true。IS

MySQL NULL 處理

MySQL提供了三大運算子來處理NULL值:     ·IS NULL:當列的值是NULL,此運算子返回true;     ·IS NOT NULL:當列的值不為NULL,此運算子返回true;  

MySQ學習筆記之十 NULL處理

con pop -a 能夠 第一個 ips ng- 索引 one 這是MySQL一大特殊之處。 概念上。NULL意味著“沒有值”或“未知值”,且它被看作有點與眾不同的值。為了測試NULL。你不能使用算術比較

fastjson null 處理

put 解析 title json.js itl con pen rgs ash 偶然用到fastjson轉換json 在前臺用js解析竟然某些字段沒有,曾經用過gson。聯想到是不是相似gson默認將null值不顯示了,找了下資料果真如此 直接上代碼

【手記】sql報“聚合或其他set操作消除了null處理

很多 targe null .com log 蛋疼 logs color isn 這個警告在常規場景中沒什麽影響,但如果是用excel跑SQL,它會因為該警告阻止你的後續操作~事實上excel執行sql限制多多,需要更多的奇技淫巧,之前我就寫過一篇。言歸正傳,要解決這個警告

freeMaker null處理

以下引用官方描述:  引用 The FreeMarker template language doesn't know the Java language null at all. It doesn't have null keyword, and it can't test if

SQL中AVG()、COUNT()、SUM()等函式對NULL處理

原文連結:https://blog.csdn.net/whaxrl/article/details/51195241 一、AVG() 求平均值 注意AVE()忽略NULL值,而不是將其作為“0”參與計算 二、COUNT() 兩種用法 1、COUNT

jsonconvert null處理 datetime處理

      /// <summary>         /// 將物件轉換成json字串         /// </summary>         /// <param name="obj">物件</param>   

JAVASCRIPT中NULL,特別注意的兩點

null 是一個javascript字面量,表示空值,就是沒有物件被呈現.他是javascript原始值之一.null值常被放在期望一個物件上,但是不引用任何物件的引數位置,也就是說物件的初始化. 我們看下面的一個例子 Javascript var obj = nu

Oracle資料庫order by排序之null處理方法

最近在忙活公司產品後臺的資料報表,在對業務資料排序時候,發現有些欄位的記錄是null值,這時排序便出現了有違我們使用習慣的資料大小順序問題。在Oracle中規定,在Order by排序時預設認為null是最大值,所以如果是ASC升序則被排在最後,而DESC降序則排在最前。

Spring boot + MyBatis返回map中null處理

在日常開發中,查詢資料返回型別為map,資料庫中有些自動值為null,則返回的結果中沒有值為空的欄位,則如何顯示值為空的欄位呢?1.xml檔案:<resultMapid="userLoginInfo"type="map">  <resultcolumn="u

MySQL查詢對NULL處理

where 記錄 hone expr 流程 算術 想要 運算符和 算術運算符 有一個字段blist,如果查詢where blist <> ‘B‘時為什麽那些blist為NULL的記錄查不出?怎麽寫才能查出NULL值記錄? 回答: Null 值不能使用普通的

mysql的外來鍵設定的注意

外來鍵是用於兩個表的資料之間建立連線,可以是一列或者多列,即一個表可以有一個或多個外來鍵。外來鍵可以不是這個表的主鍵,但必須和另外一個表的主鍵相對應(欄位的型別和值必須一樣)。帶有主鍵的那張表稱為父表,含外來鍵的是子表,必須先刪除外來鍵約束才能刪除父表。

fgets函式返回注意

在做判斷內容中是否存在敏感詞彙,敏感詞彙被儲存到一個檔案中, 敏感詞彙分等級 第一行 level 為 1 第二行 level 為 2 依次類推 看程式碼 judge.php檔案中只有兩行f,t $fp = fopen('judge.php'

重構大型業務型寫介面-並行處理注意

概述 為了提高介面的處理速度,通常會使用並行的方式。在JAVA中可以使用ThreadPoolExecutor 或者ForkJoinPool 。像並行查詢或者並行呼叫外部介面,經常會用到這兩種技術,基本上沒什麼坑。但是如果是使用這兩種技術來重構大型的