繁体   English   中英

当参数中没有值时,如何传递ssrs中表中的所有值?

[英]How to pass all the values in the table in ssrs when there is no value in the parameters?

我传递了两个参数,即@AccountId@key 当参数中没有值,即@AccountId@key时,我想显示数据库中存在的@AccountId@key所有值。 我想为同一个数据集执行此操作。 这是可能的还是我创建了不同的数据集?

我使用的查询是:

CREATE PROCEDURE [dbo].[GetDenyList]
@AccountId nvarchar(100),
@key nvarchar(400)
AS
select New_AccountId AS 'AccountId/Key', New_Description AS 'Reason',CreatedOn AS 'Date'
  from abc.dbo.New_keydenylist 
 where New_AccountId is not null
   AND @AccountId = New_AccountId
 union all
select new_key AS 'AccountId/Key', New_Description AS 'Reason',CreatedOn AS 'Date' 
  from abc.dbo.New_keydenylist 
 where New_key is not null
   and @Key=New_key

如果我很好地理解你的问题,你必须使用任何始终求值为true的谓词,而不管传递给WHERE子句的参数值。 例如WHERE 1 = 1

 WHERE 1 = 1
 AND (@AccountId IS NOT NULL OR AccountId = @AccountId)

@key参数相同:

 WHERE 1 = 1
 AND (@key IS NOT NULL OR New_key = @key)

如果两个参数@key@AccountId都是NULL或其中之一,那么WHERE子句仍然有效并返回所有未显示的行。

检查参数是否为null或等效:

AND ((@AccountId IS NULL) OR (@AccountId = New_AccountId))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM