我有一个SSRS报告,它将一些多值报告参数传递给存储过程以构建报告。当选择该选项时,我无法返回空字符串的值。正如您所看到的下拉列表中有一个空字符串选项,肯定会在选中此空字段时返回行。该参数设置为允许空白值。该参数在数据集的参数选项中具有逗号连接。我还有一个单独的表值函数,当我试图在查询中搜索特定参数时调用它。
这是我在报告参数中选择的地方:
where car.Cars in (SELECT Val from [dbo].[fn_String](@localCars,',',1))
继续调用函数来将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
答案 0 :(得分:1)