0

我有这个查询:

SELECT crr.Codes
FROM Client_Response_Ranges_for_SSRS_Respondent_Answer crr
WHERE crr.Name =  @ReportParameter1

但我想说 - 如果@ReportParameter1(这是我在 SSRS 报告中使用的参数)是Allor Prescreens,则覆盖它通常返回的内容(the nvarchar NULL)并返回一个真正的 null (即不返回任何内容?) ..

我试过这样的事情:

SELECT     
   CASE 
      WHEN @ReportParameter1 = 'All' THEN 'NULL'
      WHEN @ReportParameter1 = 'Prescreens' THEN NULL
      ELSE crr.Codes 
   END

但它不起作用,并给我一个错误,上面写着:

本地报告处理过程中发生错误。
报告处理过程中发生错误。
数据集“DataSet2”的查询执行失败。
已声明变量名称“@ReportParameter1”。变量名称在查询批处理或存储过程中必须是唯一的。

4

1 回答 1

2

我在 null 之前删除了一个单引号,并为选择列提供了一个别名。试试下面:

SELECT     CASE when @ReportParameter1 = 'All' then null 
                when @ReportParameter1 = 'Prescreens' then null
                else crr.Codes end as codes
FROM         Client_Response_Ranges_for_SSRS_Respondent_Answer crr
where crr.Name =  @ReportParameter1
于 2013-01-02T03:42:30.117 回答