我将数据保存为 1-2-4-5-7,我想将它们拆分为第一个响应 = 1、第二个响应 = 2、第三个响应 = 4、第四个响应 = 5 和第五个响应 = 7。它们在列为 varchar(max) 并且需要报告这些。有没有办法将它们分成5个不同的行或排名列表?并非所有的列都有 5 个部分,有些列有更多,有些则更少,所以如果答案对此灵活,那就太好了。
我正在使用 SSRS 2008R2 和 SQL Server 2008R2
先感谢您
我将数据保存为 1-2-4-5-7,我想将它们拆分为第一个响应 = 1、第二个响应 = 2、第三个响应 = 4、第四个响应 = 5 和第五个响应 = 7。它们在列为 varchar(max) 并且需要报告这些。有没有办法将它们分成5个不同的行或排名列表?并非所有的列都有 5 个部分,有些列有更多,有些则更少,所以如果答案对此灵活,那就太好了。
我正在使用 SSRS 2008R2 和 SQL Server 2008R2
先感谢您
declare @Testdata table ( Data varchar(max))
insert @Testdata select '1¬2¬4¬5¬7'
;with tmp(DataItem, Data) as (
select LEFT(Data, CHARINDEX('¬',Data+'¬')-1),
STUFF(Data, 1, CHARINDEX('¬',Data+'¬'), '')
from @Testdata
union all
select LEFT(Data, CHARINDEX('¬',Data+'¬')-1),
STUFF(Data, 1, CHARINDEX('¬',Data+'¬'), '')
from tmp
where Data > ''
)
select * from tmp