自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server數(shù)據(jù)庫ISNULL函數(shù)的應(yīng)用實(shí)例

數(shù)據(jù)庫 SQL Server
本文我們主要介紹了SQL Server數(shù)據(jù)庫ISNULL函數(shù)的應(yīng)用實(shí)例,通過這些實(shí)例讓我們來了解一下ISNULL函數(shù)的使用吧,希望能夠?qū)δ兴斋@!

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

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 

兩個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非主流更新表存儲過程示例

如某更新表存儲過程如下:

 

  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)我們使用這個存儲過程的時候,必須先得該行的所有記錄,再把所有記錄更新回去,可是這并不總是必須的。有時候手頭只有兩個數(shù)據(jù):ID和VAL,我只想更新這個VAL,又有時候手頭有另外兩個數(shù)據(jù):ID和GRP_A,這時候只更新GRP_A列即可。還有很多情況,如:

僅更新GRP_A,

僅更新GRP_A,GRP_B

僅更新GRP_A,GRP_B,GRP_C

僅更新GRP_A,GRP_B,GRP_C,VAL

...

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

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

非主流更新任意列存儲過程:

 

  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ù)庫ISNULL函數(shù)的應(yīng)用實(shí)例就介紹到這里了,如果您想了解更多SQL Server數(shù)據(jù)庫的知識,可以看一下這里的文章:http://database.51cto.com/sqlserver/,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. SQL Server 2000層次數(shù)據(jù)查詢的實(shí)現(xiàn)方法
  2. SQL Server根據(jù)語言查詢來返回不同的結(jié)果
  3. SQL Server 2008連接數(shù)據(jù)庫引擎的驅(qū)動和方式
  4. SQL Server查找XML里面符合某個條件的數(shù)據(jù)的用法
  5. SQL Server的執(zhí)行計(jì)劃及SQL查詢優(yōu)化實(shí)例分析與總結(jié)
責(zé)任編輯:趙鵬 來源: 博客園
相關(guān)推薦

2011-07-20 16:03:06

SQL Server數(shù)分區(qū)表

2011-08-22 14:00:13

SQL Server 游標(biāo)調(diào)用函數(shù)

2011-08-22 12:01:36

SQL Server代碼優(yōu)化

2011-08-22 09:55:30

SQL Server 排序

2010-07-16 14:17:18

SQL Server

2010-07-15 17:28:50

SQL Server

2011-08-22 13:04:47

SQL Server數(shù)函數(shù)

2011-08-22 11:39:53

SQL Server數(shù)PIVOT

2010-09-06 15:29:13

SQL函數(shù)

2011-08-18 10:21:50

SQL ServerDATEPART

2010-06-17 10:02:12

SQL Server數(shù)

2011-08-19 14:53:02

SQL ServerDataRelatio

2010-07-08 11:05:14

SQL Server數(shù)

2011-08-18 10:55:55

SQL ServerDATEADD

2011-03-30 11:15:35

SQL Server數(shù)應(yīng)用程序

2011-03-24 09:45:34

SQL Server數(shù)恢復(fù)

2011-03-24 09:07:11

SQL Server數(shù)備份

2011-03-24 09:24:08

SQL Server數(shù)還原

2010-07-14 13:14:01

SQL Server數(shù)

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號