關於NULL的兩個計算
今天在測試一個指令碼時遇到null計算的問題,貼出來記錄下: SQL> select null + 9 from dual; NULL+9 ----------
null和其他值相加是空,再看下面這個: SQL> create table t1(id number); Table created SQL> insert into t1 values(null); 1 row inserted SQL> insert into t1 values(9); 1 row inserted SQL> select sum(id) from t1; SUM(ID) ---------- 9 哦~是9,再看: SQL> create table t2(id1 number,id2 number); Table created SQL> insert into t2 values(null,9); 1 row inserted SQL> select id1+id2 from t2; ID1+ID2 ----------
哦?竟然也是空。 對聚合函式來說null和其他值相加就是其他值,所以平時從一個表中取出值相加時就沒必要先替換如果是空就按0計算了,但是如果是一個表中幾個欄位相加或者直接用null和其他值相加,不管其他值是多少都按空算了。這個平時稍不注意很可能出錯哦~
NULL是資料庫中特有的資料型別,當一條記錄的某個列為NULL,則表示這個列的值是未知的、不確定的。既然是未知的,就有無數種的可能性。因此,NULL並不是一個確定的值。這是NULL的由來、也是NULL的基礎,所有和NULL相關的操作的結果都可以從NULL的概念推匯出來。 判斷一個欄位是否為NULL,應該用IS NULL或IS NOT NULL,而不能用'='。對NULL的判斷只能定性,即是不是NULL(IS NULL/IS NOT NULL),而不能定值。簡單的說,由於NULL存在著無數的可能,因此兩個NULL不是相等的關係,同樣也不能說兩個NULL就不相等,或者比較兩個NULL的大小,這些操作都是沒有意義的,得不到一個確切的答案。因此,對NULL的=、!=、>、=、<=等操作的結果都是未知的,也就算說,這些操作的結果仍然是NULL。同理,對NULL進行+、-、*、/等操作的結果也是未知的,所以也是NULL。
所以,很多時候會這樣總結NULL,除了IS NULL、IS NOT NULL以外,對NULL的任何操作的結果還是NULL。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24496749/viewspace-723169/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於NULL值在索引裡的兩個疑惑Null索引
- 關於/dev/null和/dev/zero兩個檔案裝置devNull
- 關於NULLNull
- 計算兩列的相關性
- 關於 oracle NULLOracleNull
- 幾個關於星期計算的方法(C#)C#
- 關於 ulimit 的兩個天坑MIT
- python 計算兩個列表的相關係數的實現Python
- ORACLE關於NULL的總結OracleNull
- 計算兩個時間差
- 關於oracle的jobs的兩個檢視Oracle
- 關於null值的小知識Null
- oracle中關於null的定義OracleNull
- SQL中關於NULL的程式碼SQLNull
- javascript計算兩個日期相差的天數JavaScript
- 計算兩個路徑的父親路徑
- Calendar:計算兩個日期相差的天數
- js計算兩個日期相差的正月數JS
- 關於兩個簡單問題的分析
- javascript關於toFixed的計算規則JavaScript
- Oracle關於week的計算問題Oracle
- 關於日期計算的問題 (轉)
- 一些關於日期的計算
- SQL 語句中關於 NULL 的那些坑SQLNull
- Java中計算兩個日期間的天數Java
- 計算兩個一維陣列的卷積陣列卷積
- js 計算兩個時間的時間差JS
- 25:計算兩個日期之間的天數
- javascript 計算兩個日期間差的天數JavaScript
- Oracle計算兩個日期之間的天數Oracle
- 計算兩個日期相差的天數,Calendar用法
- [Shell] Input null到檔案中的兩個方法Null
- 關於dcat-admin的兩個問題...
- 關於 /dev/null 差點直播吃鞋的一個小問題devNull
- JavaScript計算兩個日期相差天數JavaScript
- java計算兩個日期相差年數Java
- 關於委託事件的一兩個很好的例子!事件
- 二進位制彈球計算機及兩個相關的奇妙系統計算機