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,检查并给各个变量初值