假设给定一个字符串,我怎样才能得到字符,不。单个查询中的出现次数和出现索引?
例如:顾问
字符出现次数索引:
C 1 1
O 1 2
N 2 3,9
Run Code Online (Sandbox Code Playgroud)
您可以使用递归 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;
Run Code Online (Sandbox Code Playgroud)
这是一个 db<>fiddle。
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |