在报表生成器中拆分

问题描述

我正在使用Microsoft Report Builder 我需要在报告中显示一组数据,这些数据来自以“,”(逗号)分隔的文本字符串。

我有一个需要分开的地方,像这样: 数据1,数据2,数据3 并且我需要在报告中将它们显示为这样(在同一列中)

data1

data2

data3

我的意思是在拆分中为每个项目留一行。

拆分(字段!Data.Value,“,”)(0)

我已经尝试过了,它只显示了位置0的值。 能以某种方式完成吗?谢谢!

解决方法

最好在数据集查询中执行此操作。假设您正在使用SQL Server。那么您可以执行以下操作。

您将需要一个字符串拆分功能。如果使用SQL 2016或更高版本,则可以使用内置函数string_split()。如果您使用的是旧版本,则可以使用许多功能示例。如果找不到,我可以提供一个。

如果所有数据都位于同一行,则可以执行类似的操作,将@string替换为表格列。

declare @string varchar(max) = 'Data1,Data2,Data3'
select result = ltrim(rtrim(value)) from string_split(@string,',')

这将给出以下结果

enter image description here

如果您在多行上都有数据,则可以执行类似的操作,但是使用CROSS APPLY对每一行重复该功能。

这是一个例子

declare @t table (string varchar(max))
insert into @t VALUES
('Data1,Data3'),('DataA,DataB,DataC')

select result = ltrim(rtrim(x.value)) from @t 
cross apply string_split(string,') as x 

给出以下结果

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...