Sql 允许SSRS多值参数为空字符串
我有一个SSRS报告,它将一些多值报告参数传递给存储过程以构建报告。当选择该选项时,返回空字符串的值时遇到问题。正如您所看到的,下拉列表中有一个空字符串选项,在选择此空字段时,肯定会返回一些行。该参数设置为允许空白值。该参数在数据集的参数选项中具有逗号连接。我还有一个单独的表值函数,当我试图搜索查询中的特定参数时,会调用该函数 下面是我将通过报告参数选择的位置:Sql 允许SSRS多值参数为空字符串,sql,stored-procedures,reporting-services,parameters,Sql,Stored Procedures,Reporting Services,Parameters,我有一个SSRS报告,它将一些多值报告参数传递给存储过程以构建报告。当选择该选项时,返回空字符串的值时遇到问题。正如您所看到的,下拉列表中有一个空字符串选项,在选择此空字段时,肯定会返回一些行。该参数设置为允许空白值。该参数在数据集的参数选项中具有逗号连接。我还有一个单独的表值函数,当我试图搜索查询中的特定参数时,会调用该函数 下面是我将通过报告参数选择的位置: where car.Cars in (SELECT Val from [dbo].[fn_String](@localCars,',
where car.Cars in (SELECT Val from [dbo].[fn_String](@localCars,',',1))
调用函数that将SSRS参数值拆分为单独的字符串值:
ALTER FUNCTION [dbo].[fn_String] (
@String VARCHAR(max),
@Delimeter char(1),
@TrimSpace bit )
RETURNS @Table TABLE ( [Val] VARCHAR(500) )
AS
BEGIN
DECLARE @Val VARCHAR(500)
WHILE LEN(@String) > 0
BEGIN
SET @Val = LEFT(@String,
ISNULL(NULLIF(CHARINDEX(@Delimeter, @String) - 1, -1),
LEN(@String)))
SET @String = SUBSTRING(@String,
ISNULL(NULLIF(CHARINDEX(@Delimeter, @String), 0),
LEN(@String)) + 1, LEN(@String))
IF @TrimSpace = 1 Set @Val = LTRIM(RTRIM(@Val))
INSERT INTO @Table ( [Val] )
VALUES ( @Val )
END
RETURN
END
几周前我也有同样的问题。您确定在传入的每个参数中都有联接吗。那是我的错误,我忘了一两个。JOIN(parameter!paramName.value,“,”)几周前我也遇到了同样的问题。您确定在传入的每个参数中都有联接吗。那是我的错误,我忘了一两个。联接(参数!paramName.value,“”)