2015-07-03 49 views
1

我試圖生成一個子集,我需要構造一個更大的查詢,它似乎雖然我已經將變量設置爲null(或者根本沒有設置它)我一直在努力弄清楚我要去哪裏,但打印報表似乎不適用。 (因此我懷疑他們是NULL)設置後tsql變量爲空

DECLARE @selectCols nvarchar(4000) 
     DECLARE @cols nvarchar(4000) 
     SET @selectCols = 
     'SELECT '[email protected]+' = isnull('[email protected]+' + '','', '') + ''['' + CONVERT(nvarchar, TimeIndex) + '']'' 
     from (select top 6 timeindex from (select distinct top 6 TimeIndex from '[email protected]_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已設置)

回答

2

在tsql中,null是未定義的,並且nothing + null爲null。

您尚未將值分配給@cols,因此您的@selectCols返回null。爲@cols分配一個值並嘗試。

DECLARE @cols nvarchar(4000) = 'Assign your value here' 
+0

謝謝這確實似乎是問題所在。有趣的是,我從來沒有遇到過它。 – MSB