首页 > 解决方案 > sql字符串拆分为定义的字符数

问题描述

我有一个像'aabbcczx'这样的字符串,我需要将该字符串拆分为2个字符。预期的结果是这样的:

aabbcczx aa aabbcczx bb aabbcczx cc aabbcczx zx

我怎样才能做到这一点?还要考虑字符串的长度逐行变化。

谢谢

标签: sqlsql-serverstringsplitplsqldeveloper

解决方案


如果总是 2 个字符:

SELECT  A.Val,
        CA1.N,
        SUBSTRING(A.Val,n,2)
FROM    (
            VALUES ('aabbcczx')
        ) AS A(Val)
CROSS
APPLY   dbo.GetNums(1,LEN(A.Val)) AS CA1
WHERE   CA1.n % 2 = 1;

GetNums 是一个数字表/计数表生成器,您可以在网上找到一些来源。

它将提供每个字符的位置,我们可以在substring开始位置使用它。where 子句使用MODto 所以我们只显示其他的起始位置


推荐阅读