Isnull()函数测试


 
Use Test
Go
/*Isnull()函数测试 2009-11-22

ISNULL ( check_expression , replacement_value )
*/


1。 数据类型一样,但长度不一样

Declare @x nvarchar(5),
        
@y nvarchar(50)

Set @y=N'123456'
Print Isnull(@x,@y)   --@y就会被截取,返回"12345"

Go


2.数据类型不一样(nvarchar -> int)

Declare @x int,
        
@y nvarchar(50)

Set @y=N'123456'
Print Isnull(@x,@y)+N'1'   --这里先转换成int数据类型,再加"1",所以返回"123457"

Go



3.数据类型不一样(int -> nvarchar)

Declare @x nvarchar(50),
        
@y int

Set @y=N'123456'
Print Isnull(@x,@y)+N'1'   --这里先转换成nvarchar数据类型,再加"1",所以返回"1234561"
Go



4.数据类型不一样(nvarchar -> uniqueidentifier)

Declare @x uniqueidentifier,
        
@y nvarchar(50)

Set @y=N'123456'
Print Isnull(@x,@y)   --收到错误的提示:"将字符串转换为 uniqueidentifier 时失败"。
Go


5. 来个有意思的测试(nvarchar -- > Null)

Declare    @y nvarchar(50)

Set @y=N'123456'
Print Isnull(Null,@y)+N'1'   --说明当check_expression为Null,返回的是replacement_value的数据类型,所以返回@y的nvarchar类型:"1234561"


6. 来个有意思的测试(int -- > Null) --再验证第5个例子

Declare    @y int

Set @y=N'123456'
Print Isnull(Null,@y)+N'1'   --说明当check_expression为Null,返回的是replacement_value的数据类型,所以返回@y的int类型:"123457"
Go



(完.)

posted @ 2009-11-22 22:39  ok_008  阅读(1113)  评论(2编辑  收藏  举报
给我写信