我试图生成一个我需要构建一个更大的查询的子集,但似乎我已经将该变量设置为null(或者根本没有设置它)I&# 39;一直试图弄清楚我哪里出错了,但印刷品陈述似乎在这里不起作用。 (因此我怀疑它们是NULL)
DECLARE @selectCols nvarchar(4000)
DECLARE @cols nvarchar(4000)
SET @selectCols =
'SELECT '+@cols+' = isnull('+@cols+' + '','', '') + ''['' + CONVERT(nvarchar, TimeIndex) + '']''
from (select top 6 timeindex from (select distinct top 6 TimeIndex from '+@db_id+'.[webhistory].[Prediction_FillpercentageDays]
order by TimeIndex desc)as a1 order by TimeIndex asc) as a2'
EXECUTE (@selectCols);
SELECT CAST('<root><![CDATA[' + @selectCols + ']]></root>' AS XML)
我的问题是:我错过了什么?我觉得我错过了一些非常简单的东西。 (是@db_id已设置)
答案 0 :(得分:2)
在tsql中,null是未定义的,任何+ null都是null。
您尚未为@cols
分配值,因此@selectCols
返回null。为@cols分配一个值并尝试。
DECLARE @cols nvarchar(4000) = 'Assign your value here'