在SQL Server中使用ISNULL執(zhí)行空值判斷查詢
有如下查詢:
select isnull(lastchanged,'') as lastchanged from vhhostlist where s_comment='test202'
本來,ISNULL函數(shù)只有一個(gè)參數(shù),它表示的含義就是判斷這個(gè)參數(shù)的值是否為NULL,是NULL則返回TRUE,否則返回FALSE;
但是,在SQLServer的查詢語句中,isnull需要兩個(gè)參數(shù),它的含義是如果參數(shù)1為NULL,則以參數(shù)2為isnull函數(shù)的返回值;
即,上面查詢的的含義是,查詢vhhostlist表中s_comment='test202'那一行l(wèi)astchanged字段的值,如果它為NULL,則返回一個(gè)空字符串;
記得以前不懂這個(gè)的時(shí)候,遇到這樣一個(gè)情況:一張訂單表,其中一個(gè)字段是status,訂單提交上來時(shí)status為NULL。 在程序里要做如下判斷,當(dāng)它為NULL時(shí),顯示一個(gè)審核的超鏈接;當(dāng)它不為空時(shí),顯示一個(gè)字符串:已審。當(dāng)時(shí)的程序是這樣寫的:
if rs("status")<>"" then
response.write "<span style='color:red;'>已審</span>"
else
response.write "<a href=check.asp?id=" & rs("id") & ">審核</a>"
end if
其實(shí)這樣的判斷是不慎密的,rs("status")<>""并不代表就rs("status")就等于已經(jīng)審核;也并不表示rs("status")<>""以外的情況就是未審狀態(tài);
最合理的應(yīng)該就是用isnull(status,'') as status把status查出來,如果rs("status")=""則表示未審,這是一定成立的!
相關(guān)文章
SQL Server如何通過SQL語句直接操作另一臺服務(wù)器上的SQL SERVER的數(shù)據(jù)
這篇文章主要介紹了SQL Server如何通過SQL語句直接操作另一臺服務(wù)器上的SQL SERVER的數(shù)據(jù),需要的朋友可以參考下2022-10-10數(shù)據(jù)庫表的查詢操作實(shí)踐演練(實(shí)驗(yàn)三)
這篇文章主要對數(shù)據(jù)庫表的查詢操作進(jìn)行實(shí)踐演練,針對實(shí)驗(yàn)一和實(shí)驗(yàn)二涉及到的內(nèi)容進(jìn)一步深入學(xué)習(xí),進(jìn)一步理解關(guān)系運(yùn)算,鞏固數(shù)據(jù)庫的基礎(chǔ)知識,感興趣的小伙伴可以參考一下2015-08-08SQL?Server2022數(shù)據(jù)庫安裝及配置過程
最近發(fā)現(xiàn)有諸多的小伙伴們對于sqlserver安裝教程2022,sql server安裝教程這個(gè)問題都頗為感興趣的,這篇文章主要給大家介紹了關(guān)于SQL?Server2022數(shù)據(jù)庫安裝及配置的相關(guān)資料,需要的朋友可以參考下2023-12-12SQL Server刪除表及刪除表中數(shù)據(jù)的方法
本文介紹SQL Server中如何刪除表,如何刪除表中的數(shù)據(jù)。在刪除表數(shù)據(jù)時(shí)有delete和truncate兩種方法,delete和truncate有什么區(qū)別呢2016-04-04Sql語句與存儲過程查詢數(shù)據(jù)的性能測試實(shí)現(xiàn)代碼
Sql語句 存儲過程查 性能測試對比代碼。2009-04-04SQL(MSSQLSERVER)服務(wù)啟動錯(cuò)誤代碼3414的解決方法
這篇文章主要介紹了SQL(MSSQLSERVER)服務(wù)啟動錯(cuò)誤代碼3414的解決方法,需要的朋友可以參考下2016-03-03