以往工作中數據庫使用DB2較多,在SQL開發中多次遇到NULL值的問題。尤其在初期對DB2不是太熟悉,對于問題的排查用了很多的時間。
今天對于DB2中NULL常見問題和大家進行分享。
null值用來做數據比較,導致數據丟失
加工拉鏈表時,新增數據與歷史數據字段進行對比時,字段值中存在null值,導致新增數據丟失,未加工到結果表。
F層數據發生變化(20180802,該條記錄幣種信息變更為01)
執行完對應存儲過程,查看拉鏈表HIS,該條記錄沒有閉鏈,也沒有新增一條開鏈數據
問題分析:
加工HIS表邏輯中,全量提取增量數據(新增數據與歷史數據對比,值發生變化的需要提取出來)
源表數據幣種信息為null,而null是不可以進行數據對比的,將null值轉換為空后,可以進行數據對比。
修改后重新編譯存儲過程并執行,查看結果。
歷史數據閉鏈,并新增一條開鏈數據
子查詢數據存在null,導致查詢結果不準確
在使用notin 的時候需要注意,如果notin 后面的數據范圍中有為null的數據,這樣會關聯不出來數據,即使數據滿足條件也不能取出。
下面查詢結果為空,但是根據其他渠道知道,這種關聯應該是有數據的,這說明語句有不標準的地方
我們找到一條數據,這條數據不存在于子查詢中。
分析原因:
子查詢中有為null的值,而null值無法用于關聯計算。因此導致整個查詢失效,即使有符合條件的數據,也無法關聯出來。
解決方案:
1、用notexists 代替 notin
2、進行null值轉換為空的操作
字段為數字類型在進行各種數學運算
Null值相加,修改后使用nvl函數將null值替換為0,顯示正確結果
null值字段與其他字段進行拼接
任何值與null值拼接后都為null,通過nvl函數將null替換為’’后,顯示正確結果
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129959.html
摘要:新晉技術專家下面是墨天輪部分新晉的技術專家。大家可以點擊往期閱讀墨天輪技術專家邀請函了解詳情,申請成為我們的技術專家,加入專家團隊,與我們一起創建一個開放互助的數據庫技術社區。新關聯公眾號墨天輪是一個開放互助的數據庫技術社區。 引言 近期我們在DBASK小程序增加了數據庫 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術...
摘要:一直以來,數據庫的核心研發團隊都十分神秘,作為隱藏在幕后的隱士高人,他們對數據庫發展以及數據庫研發團隊的看法是什么呢本文我們就由巨杉數據庫核心技術研發團隊的老司機,向大家分享他分布式數據庫的自研之路。 一直以來,數據庫的核心研發團隊都十分神秘,作為隱藏在幕后的隱士高人,他們對數據庫發展以及數據庫研發團隊的看法是什么呢?本文我們就由巨杉數據庫核心技術研發團隊的老司機,向大家分享他分布式數...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20