SQL查询输出始终为NULL?

时间:2018-07-20 11:19:04

标签: sql sql-server tsql

为什么我的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

2 个答案:

答案 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)

  1. convert(nvarchar(1),@day_segment)

替换为

 'SELECT @day_segment = ' case ..
  1. 如果SELECT重新运行0行NULL变量