当前位置: 代码迷 >> Sql Server >> varchar 相加 变空解决方法
  详细解决方案

varchar 相加 变空解决方法

热度:432   发布时间:2016-04-27 13:11:10.0
varchar 相加 变空
DECLARE @Sql NVARCHAR(max) DECLARE @a NVARCHAR(2000) DECLARE @b NVARCHAR(2000)

set @[email protected]+'...[email protected]....
一段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(@[email protected][email protected]) + ' ' + @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,检查并给各个变量初值
  相关解决方案