日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SQLServer數(shù)據(jù)庫(kù)ISNULL函數(shù)的應(yīng)用實(shí)例

SQL Server數(shù)據(jù)庫(kù)ISNULL函數(shù)的使用是本文我們主要要介紹的內(nèi)容,我們通過(guò)實(shí)例來(lái)說(shuō)明ISNULL函數(shù)的使用,接下來(lái)我們就開始介紹這部分內(nèi)容。

創(chuàng)新互聯(lián)公司IDC提供業(yè)務(wù):重慶服務(wù)器托管,成都服務(wù)器租用,重慶服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。

1.利用ISNULL函數(shù)干掉OR運(yùn)算!

題目是查詢表中VAL小于20的值,包括NULL值:

 

 
 
 
  1. SELECT * FROM T WHERE ISNULL(VAL,-1) < 20 
  2. SELECT * FROM T WHERE VAL IS NULL OR VAL < 20 

兩個(gè)SQL具有相同的輸出結(jié)果

 

 
 
 
  1. GRP_A GRP_B GRP_C VAL  
  2. ---- ----- ----- --- 
  3. a1 b1 c1 10  
  4. a1 b1 c2 10  
  5. a2 b3 c3 NULL  
  6. a2 b3 c3 NULL  
  7. a2 b3 c3 NULL  
  8. (5 行受影響) 

 

 
 
 
  1. GRP_A GRP_B GRP_C VAL  
  2. ---- ------ ----  --  
  3. a1 b1 c1 10  
  4. a1 b1 c2 10  
  5. a2 b3 c3 NULL  
  6. a2 b3 c3 NULL  
  7. a2 b3 c3 NULL  
  8. (5 行受影響) 

2.ISNULL非主流更新表存儲(chǔ)過(guò)程示例

如某更新表存儲(chǔ)過(guò)程如下:

 

 
 
 
  1. CREATE PROC UpdateT(  
  2. @ID INT,  
  3. @GRP_A VARCHAR(10) = NULL,  
  4. @GRP_B VARCHAR(10) = NULL,  
  5. @GRP_C VARCHAR(10) = NULL,  
  6. @VAL INT = 0 
  7. )AS  
  8. BEGIN  
  9. UPDATE T SET   
  10. GRP_A = @GRP_A,  
  11. GRP_B = @GRP_B,  
  12. GRP_C = @GRP_C,  
  13. VAL = @VAL  
  14. WHERE ID = @ID  
  15. END 

 

當(dāng)我們使用這個(gè)存儲(chǔ)過(guò)程的時(shí)候,必須先得該行的所有記錄,再把所有記錄更新回去,可是這并不總是必須的。有時(shí)候手頭只有兩個(gè)數(shù)據(jù):ID和VAL,我只想更新這個(gè)VAL,又有時(shí)候手頭有另外兩個(gè)數(shù)據(jù):ID和GRP_A,這時(shí)候只更新GRP_A列即可。還有很多情況,如:

僅更新GRP_A,

僅更新GRP_A,GRP_B

僅更新GRP_A,GRP_B,GRP_C

僅更新GRP_A,GRP_B,GRP_C,VAL

...

這樣的組合太多了,要想一勞永逸解決問(wèn)題那就得更新任何字段前,先得到整行記錄,再整行更新回去,于是多了一項(xiàng)工作:先查詢,再更新,那沒(méi)有辦法不先查詢直接更新某一列呢?而且列可以任意組合?

在給出答案前,先聲明一句:這個(gè)方法算不上完美解決方案,僅僅是個(gè)思路罷了,雖然我一直認(rèn)為沒(méi)什么影響,但如果要在正式項(xiàng)目中使用,建議還是多聽聽DBA的意見(jiàn)!

非主流更新任意列存儲(chǔ)過(guò)程:

 

 
 
 
  1. CREATE PROC UpdateT(  
  2. @ID INT,  
  3. @GRP_A VARCHAR(10) = NULL,  
  4. @GRP_B VARCHAR(10) = NULL,  
  5. @GRP_C VARCHAR(10) = NULL,  
  6. @VAL INT = 0 
  7. )AS  
  8. BEGIN  
  9. UPDATE T SET   
  10. GRP_A = ISNULL(@GRP_A,GRP_A),  
  11. GRP_B = ISNULL(@GRP_B,GRP_B),  
  12. GRP_C = ISNULL(@GRP_C,GRP_C),  
  13. VAL = ISNULL(@VAL,VAL)  
  14. WHERE ID = @ID  
  15. END 

關(guān)于SQL Server數(shù)據(jù)庫(kù)ISNULL函數(shù)的應(yīng)用實(shí)例就介紹到這里了,如果您想了解更多SQL Server數(shù)據(jù)庫(kù)的知識(shí),可以看一下這里的文章:http://database./sqlserver/,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. SQL Server 2000層次數(shù)據(jù)查詢的實(shí)現(xiàn)方法
  2. SQL Server根據(jù)語(yǔ)言查詢來(lái)返回不同的結(jié)果
  3. SQL Server 2008連接數(shù)據(jù)庫(kù)引擎的驅(qū)動(dòng)和方式
  4. SQL Server查找XML里面符合某個(gè)條件的數(shù)據(jù)的用法
  5. SQL Server的執(zhí)行計(jì)劃及SQL查詢優(yōu)化實(shí)例分析與總結(jié)

網(wǎng)頁(yè)標(biāo)題:SQLServer數(shù)據(jù)庫(kù)ISNULL函數(shù)的應(yīng)用實(shí)例
文章URL:http://m.5511xx.com/article/dhdjdee.html