is null 查看列數(shù)據(jù)為空 select*from lrb where lrid is null ISNULL
使用指定的替換值替換 NULL。 語法 參數(shù) 將被檢查是否為 NULL的表達(dá)式。check_expression 可以是任何類型的。 replacement_value 在 check_expression 為 NULL時(shí)將返回的表達(dá)式。replacement_value 必須與 check_expresssion 具有相同的類型。 返回類型 注釋 示例 USE pubs 下面是結(jié)果集: -------------------------- (1 row(s) affected) B. 使用 ISNULL USE pubs 下面是結(jié)果集: Title Type Price
有關(guān)ISNULL的使用
最近用isnull用的很不爽.看了N次幫助還不太明白, 請問: select isnull(數(shù)字,0) as 值 from 表名 這樣寫是不是 isnull 沒有生效呢? 如果列名"數(shù)字"無值, 用select還是空值, 并不是顯示一個(gè)數(shù)字 0 出來, 為什么? 難道必須用聚合函數(shù)這樣寫才行嗎? select isnull(sum(數(shù)字),0) as 值 from 表名 這時(shí)若未找到值, 則出來的結(jié)果就是 0 了, 為什么? 使用 isnull 還有其它什么限制嗎? /////////////////////////////////////////////
你的數(shù)字肯定不是null,
可以試試select isnull(null,0) as 值 2 數(shù)字字段如果包括 null 則 isnull(數(shù)字,0) 結(jié)果為0
如果包括 空格 則 isnull(數(shù)字,0) 結(jié)果為空格 isnull 只用來判斷是否有null 3 在SQL中,要特別注意空格不是NULL,空格會(huì)當(dāng)作字符存貯,數(shù)字型的數(shù)據(jù)也不例外。
4 查詢分析器執(zhí)行:
select isnull(null,0) select isnull(null,'被null的字符') select isnull('null','不會(huì)出來應(yīng)為它不是null') select case when null is null then '是null' else '不是null' end select case when 'null' is null then '是null' else '不是null' end 5 這句有問題:
select isnull(sum(數(shù)字),0) as 值 from 表名 如果有數(shù)字是null則sum(數(shù)字)是NULL,則返回值是0 應(yīng)該寫成; select sum(isnull(數(shù)字,0)) as 值 from 表名 6 這樣說吧, 我有一個(gè)表, 其中一個(gè)字段名是 s_z , 類型是 int , auto_id 是自增量
identity , 最大的id號(hào)是80, 我在查詢分析器中執(zhí)行
select isnull(s_z,0) as 數(shù)字 from 表名 where id>100 這時(shí)分析器顯示的 "數(shù)字" 列下面沒有內(nèi)容, 而我用 select isnull(sum(s_z),0) as 數(shù)字 from 表名 where id>100 它這里在 "數(shù)字" 列下面顯示的值是 0 , 為什么? 7 ISNULL,只會(huì)對該字段是null值的起作用
8 select sum(1) from sysobjects where 1=2 它會(huì)返回一個(gè)null 9 select 1 from sysobjects where 1=2 它什么也不返回如果你要: select isnull((select 1 from sysobjects where 1=2),0) 10
這是因?yàn)槿绻麤]有符合條件的記錄,SUM同樣會(huì)返回一個(gè)值NULL,所以仍然有一個(gè)返回值,再用ISNULL,當(dāng)然會(huì)變成0了。你試試不用ISNULL,看看會(huì)不會(huì)出現(xiàn)一個(gè)NULL的返回值!
12
哦, 明白了, 意思是指我用普通的 select 它在沒有查找相應(yīng)的記錄時(shí), 根本沒有返回任何東東, 而用了 sum
時(shí), 則會(huì)返回 null 對吧.
如果是這樣, 我如何在普通的 select 沒有返回東東的時(shí)候?qū)⑺闹翟O(shè)為 0 呢? 已如同 isnull 的功能那樣? 13 “ 我如何在普通的 select 沒有返回東東的時(shí)候?qū)⑺闹翟O(shè)為 0 呢?”?我都糊涂了。
select在沒有符合條件的記錄時(shí)什么也不返回,而集合函數(shù)一定返回總計(jì)結(jié)果null,這難道需要“顛覆”嗎? |
|