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

創(chuàng)新互聯(lián)公司IDC提供業(yè)務(wù):重慶服務(wù)器托管,成都服務(wù)器租用,重慶服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機托管與主機租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機房,BGP機房,電信機房,移動機房,聯(lián)通機房。
1.利用ISNULL函數(shù)干掉OR運算!
題目是查詢表中VAL小于20的值,包括NULL值:
- SELECT * FROM T WHERE ISNULL(VAL,-1) < 20
- SELECT * FROM T WHERE VAL IS NULL OR VAL < 20
兩個SQL具有相同的輸出結(jié)果
- GRP_A GRP_B GRP_C VAL
- ---- ----- ----- ---
- a1 b1 c1 10
- a1 b1 c2 10
- a2 b3 c3 NULL
- a2 b3 c3 NULL
- a2 b3 c3 NULL
- (5 行受影響)
- GRP_A GRP_B GRP_C VAL
- ---- ------ ---- --
- a1 b1 c1 10
- a1 b1 c2 10
- a2 b3 c3 NULL
- a2 b3 c3 NULL
- a2 b3 c3 NULL
- (5 行受影響)
2.ISNULL非主流更新表存儲過程示例
如某更新表存儲過程如下:
- CREATE PROC UpdateT(
- @ID INT,
- @GRP_A VARCHAR(10) = NULL,
- @GRP_B VARCHAR(10) = NULL,
- @GRP_C VARCHAR(10) = NULL,
- @VAL INT = 0
- )AS
- BEGIN
- UPDATE T SET
- GRP_A = @GRP_A,
- GRP_B = @GRP_B,
- GRP_C = @GRP_C,
- VAL = @VAL
- WHERE ID = @ID
- END
當我們使用這個存儲過程的時候,必須先得該行的所有記錄,再把所有記錄更新回去,可是這并不總是必須的。有時候手頭只有兩個數(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
...
這樣的組合太多了,要想一勞永逸解決問題那就得更新任何字段前,先得到整行記錄,再整行更新回去,于是多了一項工作:先查詢,再更新,那沒有辦法不先查詢直接更新某一列呢?而且列可以任意組合?
在給出答案前,先聲明一句:這個方法算不上完美解決方案,僅僅是個思路罷了,雖然我一直認為沒什么影響,但如果要在正式項目中使用,建議還是多聽聽DBA的意見!
非主流更新任意列存儲過程:
- CREATE PROC UpdateT(
- @ID INT,
- @GRP_A VARCHAR(10) = NULL,
- @GRP_B VARCHAR(10) = NULL,
- @GRP_C VARCHAR(10) = NULL,
- @VAL INT = 0
- )AS
- BEGIN
- UPDATE T SET
- GRP_A = ISNULL(@GRP_A,GRP_A),
- GRP_B = ISNULL(@GRP_B,GRP_B),
- GRP_C = ISNULL(@GRP_C,GRP_C),
- VAL = ISNULL(@VAL,VAL)
- WHERE ID = @ID
- END
關(guān)于SQL Server數(shù)據(jù)庫ISNULL函數(shù)的應(yīng)用實例就介紹到這里了,如果您想了解更多SQL Server數(shù)據(jù)庫的知識,可以看一下這里的文章:http://database./sqlserver/,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
- SQL Server 2000層次數(shù)據(jù)查詢的實現(xiàn)方法
- SQL Server根據(jù)語言查詢來返回不同的結(jié)果
- SQL Server 2008連接數(shù)據(jù)庫引擎的驅(qū)動和方式
- SQL Server查找XML里面符合某個條件的數(shù)據(jù)的用法
- SQL Server的執(zhí)行計劃及SQL查詢優(yōu)化實例分析與總結(jié)
當前名稱:SQLServer數(shù)據(jù)庫ISNULL函數(shù)的應(yīng)用實例
本文網(wǎng)址:http://www.fisionsoft.com.cn/article/dhdjdee.html


咨詢
建站咨詢
