2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

sql isnull函數(shù)

 liuyci 2011-01-08
is null
查看列數(shù)據為空
select*from lrb where lrid is null

ISNULL
使用指定的替換值替換 NULL。

語法
ISNULL ( check_expression , replacement_value )

參數(shù)
check_expression

將被檢查是否為 NULL的表達式。check_expression 可以是任何類型的。

replacement_value

在 check_expression 為 NULL時將返回的表達式。replacement_value 必須與 check_expresssion 具有相同的類型。

返回類型
返回與 check_expression 相同的類型。

注釋
如果 check_expression 不為 NULL,那么返回該表達式的值;否則返回 replacement_value。

示例
A. 將 ISNULL 與 AVG 一起使用
下面的示例查找所有書的平均價格,用值 $10.00 替換 titles 表的 price 列中的所有 NULL 條目。

USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO

下面是結果集:

--------------------------
14.24

(1 row(s) affected)

B. 使用 ISNULL
下面的示例為 titles 表中的所有書選擇書名、類型及價格。如果一個書名的價格是 NULL,那么在結果集中顯示的價格為 0.00。

USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type,
ISNULL(price, 0.00) AS Price
FROM titles
GO

下面是結果集:

Title Type Price
--------------- ------------ --------------------------
The Busy Execut business 19.99
Cooking with Co business 11.95
You Can Combat business 2.99
Straight Talk A business 19.99
Silicon Valley mod_cook 19.99
The Gourmet Mic mod_cook 2.99
The Psychology UNDECIDED

 

有關ISNULL的使用
最近用isnull用的很不爽.看了N次幫助還不太明白,   請問:  
   
select isnull(數(shù)字,0) as 值   from 表名  
   
這樣寫是不是 isnull 沒有生效呢?   如果列名"數(shù)字"無值,   用select還是空值,   并不是顯示一個數(shù)字   0   出來,   為什么?   難道必須用聚合函數(shù)這樣寫才行嗎?    
   
select   isnull(sum(數(shù)字),0)     as   值   from   表名  
   
這時若未找到值,   則出來的結果就是   0   了,   為什么?    
   
使用   isnull   還有其它什么限制嗎?    
/////////////////////////////////////////////
你的數(shù)字肯定不是null,  
可以試試select   isnull(null,0)   as   值
2 數(shù)字字段如果包括   null   則   isnull(數(shù)字,0)   結果為0   
   如果包括   空格   則   isnull(數(shù)字,0)   結果為空格  
isnull   只用來判斷是否有null
3 在SQL中,要特別注意空格不是NULL,空格會當作字符存貯,數(shù)字型的數(shù)據也不例外。
4 查詢分析器執(zhí)行:  
   
select   isnull(null,0)  
   
select   isnull(null,'被null的字符')  
   
select   isnull('null','不會出來應為它不是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  
應該寫成;  
    select   sum(isnull(數(shù)字,0))     as   值   from   表名
6 這樣說吧,   我有一個表,   其中一個字段名是   s_z   ,   類型是   int   ,   auto_id   是自增量   identity   ,   最大的id號是80,   我在查詢分析器中執(zhí)行  
   
select   isnull(s_z,0)   as   數(shù)字   from   表名   where   id>100  
   
這時分析器顯示的   "數(shù)字"   列下面沒有內容,   而我用  
   
select   isnull(sum(s_z),0)   as   數(shù)字   from   表名   where   id>100  
   
它這里在   "數(shù)字"   列下面顯示的值是   0   ,   為什么?     
7 ISNULL,只會對該字段是null值的起作用

8 select   sum(1)   from   sysobjects   where   1=2  
它會返回一個null  
   
9 select   1   from   sysobjects   where   1=2  
它什么也不返回如果你要:  
select   isnull((select   1   from   sysobjects   where   1=2),0)
10
這是因為如果沒有符合條件的記錄,SUM同樣會返回一個值NULL,所以仍然有一個返回值,再用ISNULL,當然會變成0了。你試試不用ISNULL,看看會不會出現(xiàn)一個NULL的返回值!
12
哦,   明白了,   意思是指我用普通的   select   它在沒有查找相應的記錄時,   根本沒有返回任何東東,   而用了   sum   時,   則會返回   null   對吧.  
   
如果是這樣,   我如何在普通的   select   沒有返回東東的時候將它的值設為   0   呢?   已如同   isnull   的功能那樣?   
13 “   我如何在普通的   select   沒有返回東東的時候將它的值設為   0   呢?”?我都糊涂了。  
   
select在沒有符合條件的記錄時什么也不返回,而集合函數(shù)一定返回總計結果null,這難道需要“顛覆”嗎?

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多