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