过滤器 SSRS 中的许多 int 值
Many int values in filter SSRS
我尝试按几个数字过滤数据,但不能使用 IN,因为它需要字符串值。我该怎么做?
我试过这样的东西,但它不起作用。如何传递几个 int 值来过滤?
您可以在报告中创建一个参数(过滤器),该参数将接受由 ,
或其他字符分隔的数字。该参数将是字符串,它看起来像这样:
在 SQL 过程中使用 SPLIT_STRING
函数分隔这些值。
这是一个简单的例子。
CREATE TABLE #Numbers ( Num INT )
INSERT INTO #Numbers (Num) VALUES(1)
INSERT INTO #Numbers (Num) VALUES(2)
INSERT INTO #Numbers (Num) VALUES(3)
INSERT INTO #Numbers (Num) VALUES(4)
INSERT INTO #Numbers (Num) VALUES(5)
任务是 select 来自 #Numbers
table 的一些值。要 selected 的值是:
DECLARE @MyValues CHAR(100) = '1, 3, 5, 7'
在您的示例中,@MyValues
是报告参数。
这些值将被分隔:
DECLARE @Separator CHAR = ','
下一步是分离@MyValues
并存储它们:
CREATE TABLE #SplitValues ( NumValues INT )
INSERT INTO #SplitValues
SELECT TRIM(Value) FROM STRING_SPLIT(@MyValues, @Separator)
最后一步是 select @MyValues
从 #Numbers
table:
SELECT * FROM #Numbers
WHERE
Num IN (SELECT * FROM #SplitValues)
可以选择在最后一个 select
中直接使用 SELECT TRIM(Value) FROM STRING_SPLIT(@MyValues, @Separator)
,而不是使用 #SplitValues
table,但是,这种方式会起作用 TRIM
和SPLIT_STRING
为 #Numbers
table 中的每一行调用,即 "heavier" 执行。
最后,除了字符串参数,您还可以创建一个下拉复选框列表并以相同的方式传递其值,作为包含以逗号分隔的数字的字符串。
我尝试按几个数字过滤数据,但不能使用 IN,因为它需要字符串值。我该怎么做?
我试过这样的东西,但它不起作用。如何传递几个 int 值来过滤?
您可以在报告中创建一个参数(过滤器),该参数将接受由 ,
或其他字符分隔的数字。该参数将是字符串,它看起来像这样:
在 SQL 过程中使用 SPLIT_STRING
函数分隔这些值。
这是一个简单的例子。
CREATE TABLE #Numbers ( Num INT )
INSERT INTO #Numbers (Num) VALUES(1)
INSERT INTO #Numbers (Num) VALUES(2)
INSERT INTO #Numbers (Num) VALUES(3)
INSERT INTO #Numbers (Num) VALUES(4)
INSERT INTO #Numbers (Num) VALUES(5)
任务是 select 来自 #Numbers
table 的一些值。要 selected 的值是:
DECLARE @MyValues CHAR(100) = '1, 3, 5, 7'
在您的示例中,@MyValues
是报告参数。
这些值将被分隔:
DECLARE @Separator CHAR = ','
下一步是分离@MyValues
并存储它们:
CREATE TABLE #SplitValues ( NumValues INT )
INSERT INTO #SplitValues
SELECT TRIM(Value) FROM STRING_SPLIT(@MyValues, @Separator)
最后一步是 select @MyValues
从 #Numbers
table:
SELECT * FROM #Numbers
WHERE
Num IN (SELECT * FROM #SplitValues)
可以选择在最后一个 select
中直接使用 SELECT TRIM(Value) FROM STRING_SPLIT(@MyValues, @Separator)
,而不是使用 #SplitValues
table,但是,这种方式会起作用 TRIM
和SPLIT_STRING
为 #Numbers
table 中的每一行调用,即 "heavier" 执行。
最后,除了字符串参数,您还可以创建一个下拉复选框列表并以相同的方式传递其值,作为包含以逗号分隔的数字的字符串。