Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中,如何为两种特定情况(包括查询)选择NULL_Sql Server_Sql Server 2008_Reporting Services_Ssrs 2008 - Fatal编程技术网

Sql server 在SQL Server中,如何为两种特定情况(包括查询)选择NULL

Sql server 在SQL Server中,如何为两种特定情况(包括查询)选择NULL,sql-server,sql-server-2008,reporting-services,ssrs-2008,Sql Server,Sql Server 2008,Reporting Services,Ssrs 2008,我有一个疑问: SELECT crr.Codes FROM Client_Response_Ranges_for_SSRS_Respondent_Answer crr WHERE crr.Name = @ReportParameter1 但我想说的是,如果@ReportParameter1(这是我在SSRS报告中使用的一个参数)是All或预筛选,则覆盖它通常返回的内容(nvarcharNULL),并返回一个真正的NULL(即不返回任何内容?) 我试过这样的方法: SELECT

我有一个疑问:

SELECT crr.Codes
FROM Client_Response_Ranges_for_SSRS_Respondent_Answer crr
WHERE crr.Name =  @ReportParameter1
但我想说的是,如果
@ReportParameter1
(这是我在SSRS报告中使用的一个参数)是
All
预筛选
,则覆盖它通常返回的内容(nvarchar
NULL
),并返回一个真正的NULL(即不返回任何内容?)

我试过这样的方法:

SELECT     
   CASE 
      WHEN @ReportParameter1 = 'All' THEN 'NULL'
      WHEN @ReportParameter1 = 'Prescreens' THEN NULL
      ELSE crr.Codes 
   END
但它不起作用,给了我一个错误,说:

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


我删除了null前的一个引号,并为select列提供了一个alsias名称。请尝试以下内容:

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

在SQL中,不返回任何内容(无行)和为字段返回
null
值之间有很大区别。您想要哪个?另外,“null”是char/varchar,但是null(无引号)是
null
@JamieF-我想返回一个null值,谢谢@gmlobdell-啊,好的-现在明白了。谢谢啊,我刚刚理解了为什么我们需要将
添加为code
部分。嗯,那太微妙了!我发现sql server错误消息和警告总是令人困惑,错误可能是因为一些小事情,如this@Adel因为SQL需要列的标签,所以需要使用
as code
。由于该值来自
案例
,因此它不知道该如何调用它。您可能认为它可以从
else
子句中找到它,但这通常不起作用,因此它不尝试。您可能正在使用此
选择的结果做其他事情,这就是它需要标签的原因。@gmlobdell使用SSRS已经在“做其他事情”。它需要列名!:)