日期:2014-05-18  浏览次数:20446 次

变量返回空值问题
之前定义一变量@A VARCHAR(32)
SET @A='11'

一条SELECT语句无返回记录

SET @A = @A+ SELECT 语句

这时候@A返回值为NULL,

求解如果将@A返回值为 11+2

2为SELECT语句返回空值的默认值

------解决方案--------------------
SET @A = @A+ isnull(SELECT 语句,'2')
------解决方案--------------------
探讨

用ISNULL试过,行不通,求有测试结果

------解决方案--------------------
select '11'+ isnull((select name from sysobjects where 1=0),'2')

我返回的是112 啊
------解决方案--------------------
你先把那个select的返回值赋给另一个变量,然后再加个isnull相加
------解决方案--------------------
declare @A varchar(32)
set @A='11'
select @A=(@A+ISNULL(name,2)) from tb ...
select @A