首页 > 解决方案 > 使用 SQL 或 SSRS 报告在特定逗号位置拆分逗号分隔值

问题描述

我在 SSRS 中有一个字段,它是连接值,例如

1234,1456,3456,7890,3457,3245,4345

我需要在第 8 个逗号之后或在下一行的特定位置中断/拆分,例如:

1234,1456,3456,
7890,3457,3245,
4345

这里的值是动态的,但是我们必须在每 8 个或特定的逗号处拆分/中断

在此处输入图像描述

标签: reporting-servicesssrs-2017

解决方案


在您的示例文本中,所有值都有四个字符。如果是这种情况,一个简单的递归 CTE 可以满足您的要求:

with cte as (
      select convert(varchar(max), NULL) as val, convert(varchar(max), field) as rest, 0 as lev
      from t
      union all
      select left(rest, 15) as val, stuff(rest, 1, 15, '') as rest, lev+1
      from cte
      where rest <> ''
     )
select val
from cte
where lev > 0;

是一个 db<>fiddle。


推荐阅读