varchar 相加 变空
DECLARE @Sql NVARCHAR(max) DECLARE @a NVARCHAR(2000) DECLARE @b NVARCHAR(2000)
set @sql=@a+'...'+@b.....
一段sql相加 我print(@sql)出来 直接是空 如果我去掉一段拼接字段 则能正常输出 请问 为什么
付原sql
SQL code
SET @Sql = 'SELECT TOP ' + STR(@PageSize) + ' ' + @FieldList + ' FROM ('
+ 'SELECT TOP ' + STR(@PageSize) + ' '
+ @FieldList + ' FROM '
+ @TableName + @new_where2 + @order + ' < '
+ '(SELECT MIN(' + @order + ') FROM (SELECT TOP '
+ STR(@TotalCount-@PageSize*@PageIndex) + ' ' + @order
+ ' FROM ' + @TableName
+ @new_where1 + @new_order2 +' ) AS TMP) '+ @new_order2
+ ' ) AS TMP ' + @new_order1
print(@Sql)
------解决方案--------------------null加上任何值还是null
------解决方案--------------------那你检查下你去掉的那段拼接是不是null
------解决方案--------------------你肯定某些变量没有设置初始化值,所以默认会是Null, 拼接字段的结果当然为Null, SET @Sql =之前先把未赋值的变量Set一下,比如Set @new_where1 = ''
------解决方案--------------------变量没有设置初始化值,null加上任何值为null,检查并给各个变量初值