假设给定一个字符串,我如何获取字符,不。一个查询中出现次数和出现次数索引的组合?
例如:顾问
字符出现次数索引:
C 1 1
O 1 2
N 2 3,9
您可以使用递归CTE将其拆分然后聚合:
with cte as (
select convert(varchar(max), null) as c, convert(varchar(max), 'Consultant') as rest, 0 as lev
union all
select left(rest, 1), stuff(rest, 1, 1, ''), lev + 1
from cte
where rest <> ''
)
select c, count(*), string_agg(lev, ',')
from cte
where lev > 0
group by c;
Here是db <>小提琴。