设置后 tsql 变量为空
tsql variable is null after set
我正在尝试生成一个子集,我需要用它来构造一个更大的查询,但我的声明似乎将变量设置为 null(或根本不设置)我一直试图弄清楚我哪里出错了,但打印语句在这里似乎不起作用。 (因此我怀疑它们是 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已经设置)
在 tsql 中,null 是未定义的,任何东西 + null 都是 null。
您尚未为 @cols
赋值,因此您的 @selectCols
returns 为空。给@cols赋值试试。
DECLARE @cols nvarchar(4000) = 'Assign your value here'
我正在尝试生成一个子集,我需要用它来构造一个更大的查询,但我的声明似乎将变量设置为 null(或根本不设置)我一直试图弄清楚我哪里出错了,但打印语句在这里似乎不起作用。 (因此我怀疑它们是 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已经设置)
在 tsql 中,null 是未定义的,任何东西 + null 都是 null。
您尚未为 @cols
赋值,因此您的 @selectCols
returns 为空。给@cols赋值试试。
DECLARE @cols nvarchar(4000) = 'Assign your value here'