首页 > 解决方案 > 将字符串拆分为由句号分隔的字母 (SQL)

问题描述

我正在尝试编写一个存储过程,它接受一个字符串参数并返回它,每个字符用句号分隔。

因此,例如我希望 SP 接受参数 DOG 并返回 DOG

我尝试使用 STRING_SPLIT 函数,如下所示:

select STRING_SPLIT(@myString, '')

但它似乎与我正在使用的 SQL 版本(2014)不兼容(错误消息说它不是一个可识别的函数)。即使它确实有效,我也不确定如何插入句号。

似乎应该有一个简单的方法来做到这一点,但我就是找不到!

如果您需要任何进一步的信息,请告诉我。

非常感谢。

标签: sqlsql-serversql-server-2014

解决方案


如果我理解得很好,这是我现在能想到的最好方法,使用这个问题的答案T-SQL Split Word into characters

with cte as (
    select
        substring(a.b, v.number+1, 1) as col
        ,rn = ROW_NUMBER() over (order by (select 0))
    from (select 'DOG' b) a
    join master..spt_values v
        on v.number < len(a.b)
    where v.type = 'P'
)
select distinct
    STUFF((SELECT '.' + col FROM cte order by rn FOR XML PATH('')),1,1,'') as col
from cte

推荐阅读