首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

null的有关问题

2012-01-23 
null的问题set@str update+@type+ moneysetservicedate +cast(@servicedateasvarchar)+whereid +cast(@

null的问题
set   @str= 'update   '+@type+ 'money   set   servicedate= '+cast(@servicedate   as   varchar)+ '   where   id= '+cast(@id   as   varchar)

@servicedate有时候为null,,,


这个@str   就为null,,咋整



[解决办法]
set @str= 'update '+@type+ 'money set servicedate= '+cast(isnull(@servicedate, ' ') as varchar)+ ' where id= '+cast(@id as varchar)

@servicedate有时候为null,,,


这个@str 就为null,,咋整
[解决办法]
isnull(@servicedate, ' ')
[解决办法]
set @str= 'update '+@type+ 'money set servicedate=isnull( '+cast(@servicedate as varchar)+ ', ' ' ' ') where id= '+cast(@id as varchar)

[解决办法]
不能是 ' '?
为null,楼主想要怎样的结果
[解决办法]
isnull(@servicedate, 'null ')
[解决办法]
没有单引号
[解决办法]
set @str= 'update '+@type+ 'money set servicedate=isnull( '+cast(@servicedate as varchar)+ ',servicedate) where id= '+cast(@id as varchar)
为null是不更新--以上为
[解决办法]
isnull为用值为null的更换为其它值:
ISNULL
使用指定的替换值替换 NULL。

语法
ISNULL ( check_expression , replacement_value )

参数
check_expression

将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。

replacement_value

在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。

返回类型
返回与 check_expression 相同的类型。


[解决办法]
你判断一下它是否为null,然后set servicedate=null不就行了吗?

if @servicedate is null
begin
set @str= 'update '+@type+ 'money set servicedate=null '+ ' where id= '+cast(@id as varchar)
end
else
set @str= 'update '+@type+ 'money set servicedate= '+cast(@servicedate as varchar)+ ' where id= '+cast(@id as varchar)
[解决办法]
isnull(@servicedate, ' ')

热点排行