为什么我的SQL查询的输出始终为NULL?有什么想法吗?
set @sql_query = 'select' + convert(nvarchar(1),@day_segment) + ' = case
when isnull(a.D'+convert(nvarchar(3), @day_number ) +'_AIN = ,999) = 999 then 1
else 2 end
from UKIT_AVAILABILITY_RECORDS a
where a.PATTERN_NAME = ''' + @pattern_name + ''''
execute sp_executesql @sql_query, N'@day_segment int OUTPUT', @day_segment = @day_segment output
答案 0 :(得分:0)
如果这些变量中的任何一个为NULL,则您的输出将变为NULL,以以下查询为例:
SELECT NULL + 'ABC' AS NULLCHECK
返回null,我将在执行之前打印您要处理的每个变量,并确保它们设置正确:
PRINT @DAY_SEGMENT
PRINT @DAY_NUMBER
PRINT @PATTERN_NAME
或者,您也可以将它们包装在
中 SELECT ISNULL(@DAY_Segment,'')
验证确切的罪魁祸首。
答案 1 :(得分:0)
convert(nvarchar(1),@day_segment)
替换为
'SELECT @day_segment = ' case ..