有如下查詢:
復(fù)制代碼 代碼如下:
select isnull(lastchanged,'') as lastchanged from vhhostlist where s_comment='test202'
本來(lái),ISNULL函數(shù)只有一個(gè)參數(shù),它表示的含義就是判斷這個(gè)參數(shù)的值是否為NULL,是NULL則返回TRUE,否則返回FALSE;
但是,在SQLServer的查詢語(yǔ)句中,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,訂單提交上來(lái)時(shí)status為NULL。 在程序里要做如下判斷,當(dāng)它為NULL時(shí),顯示一個(gè)審核的超鏈接;當(dāng)它不為空時(shí),顯示一個(gè)字符串:已審。當(dāng)時(shí)的程序是這樣寫的:
復(fù)制代碼 代碼如下:
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查出來(lái),如果rs("status")=""則表示未審,這是一定成立的!
您可能感興趣的文章:- MySQL中對(duì)于NULL值的理解和使用教程
- 詳解MySQL中的NULL值
- SQLSERVER ISNULL 函數(shù)與判斷值是否為空的sql語(yǔ)句
- sqlserver 不能將值NULL插入列id(列不允許有空值解決)
- mysql中將null值轉(zhuǎn)換為0的語(yǔ)句
- SQLserver查詢數(shù)據(jù)類型為ntext是空或NULL值的方法
- 在 SQL 語(yǔ)句中處理 NULL 值的方法