警惕SQL中間的NULL
警惕SQL中間的NULL
select * from dual where null like '%*%'
no record found.
在做一個資料處理的應用的時候,因為忽略了這個,導致資料被多多處理了。
一下是出問題的SQL:
update CR_VIP_BKG_VIEW_LOAD d
set d.total_cntr_qntt = null,
d.total_cntr_qntt_20 = null,
d.total_cntr_qntt_40 = null,
d.total_cntr_qntt_40_hq = null,
d.total_cntr_qntt_45_hq = null,
d.total_cntr_qntt_other = null
where rowid not in
(SELECT MAX(ROWID)
from CR_VIP_BKG_VIEW_LOAD d
WHERE (d.cntr_check_digit not like '%*%' or
d.cntr_check_digit is null)
GROUP BY d.bkg_num, d.svc_prod_comp_id);
紅色的謂詞是改正之後的。因為缺失了對NULL的處理以及 NOT IN的條件,導致update語句更新了多於預期的資料條數,導致了bug.
寫在這裡是為了供日後更好的參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014873/viewspace-2868094/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL中的空值NULLSQLNull
- SQL server中的NULL值SQLServerNull
- SQL 查詢中的 NULL 值SQLNull
- 深入詳解SQL中的NullSQLNull
- sql中的安全問題nullSQLNull
- SQL中的Null深入研究分析SQLNull
- SQL中關於NULL的程式碼SQLNull
- SQL NULLSQLNull
- 你真的理解T-sql中的NULL嗎?SQLNull
- MySQL中is not null和!=null和<>null的區別MySqlNull
- oracle中的nullOracleNull
- sql server 資料庫中null 轉換為 0SQLServer資料庫Null
- sql when null 判斷SQLNull
- hive中的null值HiveNull
- Oracle中的NULL(六)OracleNull
- Oracle中的NULL(五)OracleNull
- Oracle中的NULL(八)OracleNull
- 面試題((A)null).fun()——java中null值的強轉面試題NullJava
- MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!MySqlNull索引
- SQL 語句中關於 NULL 的那些坑SQLNull
- SQL語句中NULL的真實含義SQLNull
- oracle sql_not exists與null的測試OracleSQLNull
- sql server中對時間日期的操作SQLServer
- 【SQL】17 SQL 檢視(Views)、SQL Date 函式、SQL NULL 值、SQLView函式Null
- 警惕python中的*重複符(運算子)Python
- SQL Server中的日期和時間:DATEADD()SQLServer
- 去除陣列中的 null 值陣列Null
- JavaScript中的“undefined、null”區別?JavaScriptUndefinedNull
- SQL 獲取SQL Server中兩個日期之間的所有日期SQLServer
- SQL Server中timestamp(時間戳)SQLServer時間戳
- ORACLE SQL過濾條件是IS NULL or !=的優化OracleSQLNull優化
- sql點滴42—mysql中的時間轉換MySql
- 如何用sql找出中間斷號的數字SQL
- 了不起的 “filter(NULL IS NOT NULL)”FilterNull
- javascrit中undefined和null的區別JavaUndefinedNull
- Shell指令碼中的 /Dev/Null 用途指令碼devNull
- js中null和undefined的區別JSNullUndefined
- js中undefined和null的區別JSUndefinedNull