日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

SQL Server中ISNULL函数个人总结

發布時間:2024/6/21 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 SQL Server中ISNULL函数个人总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫這篇博客主要是最近在做項目的時候碰到了一個很奇怪的現象:執行了一個存儲過程,返回結果大概有3000行左右,但卻用了40幾秒的時間,實在讓我很郁悶,于是我詳細看了下腳本,經過多次的修改測試以后,居然發現是因為在WHERE子句中使用了ISNULL函數,這個還不是最關鍵的,關鍵是我居然給對一個不可能為NULL的參數進行了NULL值判斷(也就是使用了ISNULL函數),然后我把這些不必要的ISNULL函數去掉以后,再次執行之后返回結果就只用了0秒,經過思考后我才發現,對一個不可能為NULL的參數進行判斷就好比是畫蛇添足,經過思考后,對ISNULL函數總結了以下幾點:

1.在給變量賦值的時候不需要ISNULL的判斷,應該在計算時使用到該變量的時候再加上ISNULL的判斷

select@OldMQuan=ISNULL(MQuan,0),@OldPQuan=ISNULL(AQuantity,0)
fromTableName
whereId=ISNULL(@Id,0)

這里的ISNULL(MQuan,0)和ISNULL(AQuantity,0)完全是可以省略掉的,
而在使用的時候應該加上,如下:
updateTableName

setRQuan=isnull(RQuan,0)-isnull(@OldPQuan,0)+isnull(@OldMQuan,0)
whereId=ISNULL(@Id,0)

2.WHERE子句中應避免使用ISNULL等函數,應該在存儲過程開始時就對參數進行ISNULL的判斷
如下:

updateTableName

setRQuan=isnull(RQuan,0)-isnull(@OldPQuan,0)+isnull(@OldMQuan,0)
whereId=ISNULL(@Id,0)

可以改為在存儲過程剛開始的就對參數進行NULL值判斷,接著在下面的腳本中就可以直接使用該變量,而不用再重復多次去判斷參數NULL值得情況了:

上面的就可以改為如下的寫法:
set@Id=ISNULL(@Id,0)

updateTableName

setRQuan=isnull(RQuan,0)-isnull(@OldPQuan,0)+isnull(@OldMQuan,0)
whereId=@Id


3WHERE子句中ISNULL()的使用,讓該表達式等同于1=1,使其失效的處理方式優化:

DECLARE @myID INT

SET @myID=NULL

SELECT * FROM TABLENAME

WHERE ID=ISNULL(@myID,ID)

AND ... AND .....

處理方法:

where id=isnull(@myid,id)改為

where (@myid is not null and id=@myid) or (@myid is null)


4.UPDATE更新數量的時候需要對數量進行運算時需判斷數據庫表中字段的值是否為NULL值:
updateTableName
setCQuan=ISNULL(CQuan,0)-ISNULL(@MQuan,0)
whereid=@idandISNULL(CQuan,0)-ISNULL(@Quan,0)>=0

如果上面語句中在表當中這個CQuan字段定義為可空的話,就需要加上ISNULL(CQuan,0)這個判斷了

同時還應該加上()以區分表達式的范圍,如下:

updateTableName
setCQuan=ISNULL(CQuan,0)-ISNULL(@MQuan,0)
whereid=@idandISNULL(CQuan,0)-ISNULL(@Quan,0)>=0

總結

以上是生活随笔為你收集整理的SQL Server中ISNULL函数个人总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 潘金莲一级淫片免费放动漫 | 亚洲国产黄| 不卡的av电影 | 成年人精品视频 | 琪琪久久 | 亚洲做受高潮 | 欧美性久久久 | 成年人在线播放 | 亚洲国产精品久久久久久久 | 神马午夜在线观看 | 中文字幕高清视频 | 人人玩人人弄 | 悟空影视大全免费高清观看在线 | 中文字幕一区二区三区四区不卡 | 欧美偷拍少妇精品一区 | 免费婷婷 | 久久久久久久久久久国产精品 | 国产成人精品电影 | 国产校园春色 | av男人网| 亚洲视频免费播放 | 交专区videossex另类 | 欧美激情区| 精品一区二区三区视频 | 麻豆免费在线观看 | 欧美骚视频 | 国产午夜视频 | 99国产精品国产精品九九 | 人妻在卧室被老板疯狂进入 | 狠狠婷婷 | 日韩久草| 视频一区二区在线 | 成人av第一页 | 国产午夜福利片 | 日本xx片| 不卡黄色 | 后入内射无码人妻一区 | jizz欧美大片 | 美女张开腿露出尿口 | 一本高清dvd在线播放 | 国产欧美日韩视频在线观看 | 精品人伦一区二区三 | 一级特黄欧美 | 久久特黄视频 | 日韩av第一页 | 国产日韩欧美中文 | 蜜桃av久久久亚洲精品 | 伊人青青草原 | 少妇高潮毛片色欲ava片 | 欧美三级欧美成人高清 | 国产亚洲一区在线 | 伊人五月婷婷 | 国产原创av在线 | 久久aaa | 91丨porny丨中文| 国产欧美久久一区二区三区 | 中文字幕在线视频免费观看 | 国毛片| 国产精品丝袜黑色高跟 | 中文字幕三区 | 欧美一区二区三区在线免费观看 | 9l视频自拍九色9l视频 | 91无限观看 | 天天干,天天操,天天射 | 男人用嘴添女人下身免费视频 | www.国产麻豆| 青青伊人av | 蜜桃视频在线观看污 | 欧美片在线观看 | 福利视频免费观看 | 国产免费一区二区三区三州老师 | 欧美激情区 | 国内一区二区 | 超碰网站在线观看 | 狠狠干夜夜草 | 男女插插网站 | 九九自拍视频 | 一区二区三区四区免费观看 | 体内精69xxxxxx | 天天干视频 | 特黄aaaaaaaaa真人毛片 | 极品少妇网站 | 在线播放一区二区三区 | 开心激情五月网 | 少妇一区二区视频 | 深夜福利免费观看 | 朋友人妻少妇精品系列 | 老头把女人躁得呻吟 | 成人av免费在线观看 | 久久春色| 男人添女人荫蒂国产 | 国产片91| 99久久99久久精品免费看蜜桃 | 日本一区二区三区免费看 | 深夜福利91| 成人午夜免费电影 | 肉大捧一进一出免费视频 | 强睡邻居人妻中文字幕 | 青青青草国产 |