程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 在SQL Server中使用ISNULL執行空值判斷查詢

在SQL Server中使用ISNULL執行空值判斷查詢

編輯:關於SqlServer

有如下查詢:
復制代碼 代碼如下:
select isnull(lastchanged,'') as lastchanged from vhhostlist where s_comment='test202'

本來,ISNULL函數只有一個參數,它表示的含義就是判斷這個參數的值是否為NULL,是NULL則返回TRUE,否則返回FALSE;

但是,在SQLServer的查詢語句中,isnull需要兩個參數,它的含義是如果參數1為NULL,則以參數2為isnull函數的返回值;

即,上面查詢的的含義是,查詢vhhostlist表中s_comment='test202'那一行lastchanged字段的值,如果它為NULL,則返回一個空字符串;

記得以前不懂這個的時候,遇到這樣一個情況:一張訂單表,其中一個字段是status,訂單提交上來時status為NULL。 在程序裡要做如下判斷,當它為NULL時,顯示一個審核的超鏈接;當它不為空時,顯示一個字符串:已審。當時的程序是這樣寫的:
復制代碼 代碼如下:
if rs("status")<>"" then
       response.write "<span style='color:red;'>已審</span>"
else
       response.write "<a href=check.asp?id=" & rs("id") & ">審核</a>"
end if

其實這樣的判斷是不慎密的,rs("status")<>""並不代表就rs("status")就等於已經審核;也並不表示rs("status")<>""以外的情況就是未審狀態;

最合理的應該就是用isnull(status,'') as status把status查出來,如果rs("status")=""則表示未審,這是一定成立的!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved