将字符串拆分为以句点分隔的字母(SQL)

Hel*_*enS 1 sql sql-server sql-server-2014

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

所以例如我希望SP接受参数DOG并返回DOG

我试过使用STRING_SPLIT函数如下:

select STRING_SPLIT(@myString, '')
Run Code Online (Sandbox Code Playgroud)

但它似乎与我正在使用的SQL版本(2014)不兼容(错误消息表明它不是一个公认的功能).即使它确实有效,我也不确定如何插入句号.

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

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

非常感谢.

Val*_*ica 5

如果我理解这是我能想到的最好的方法,使用这个问题的答案T-SQL将Word分成字符

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
Run Code Online (Sandbox Code Playgroud)


Lar*_*rnu 5

最初误解了这个问题.此答案用于NGRams8K将参数拆分为字符,然后FOR XML PATH将其连接起来:

SELECT (SELECT token +'.'
        FROM dbo.NGrams8k('DOG',1)
        ORDER BY position
        FOR XML PATH(''))
Run Code Online (Sandbox Code Playgroud)