SQLserver: 문자열을 n자씩 레코드에 저장

3739 단어 SQLServern-gram

SAMPLE



매우 특수한 용도이지만
다음 문자열을 지정된 문자 수로 분리하여 레코드에 저장합니다.
XXXYYYWWW


SQL SERVER


CREATE FUNCTION [dbo].[Onecharacter]
(
    @string NVARCHAR(4000),
  @n INT
)
RETURNS TABLE
AS
RETURN
(
    WITH Onecharacter(stpos,endpos)
    AS( 
    SELECT 1 AS stpos, 1+@n AS endpos
    UNION ALL
    SELECT endpos,endpos+@n
    FROM Onecharacter
    WHERE endpos > 0
        AND endpos < LEN(@string)+1
    )
    SELECT 'data' = SUBSTRING(@string,stpos,COALESCE(NULLIF(endpos,0),LEN(@String)+1)-stpos)
    FROM Onecharacter
)

HOW TO USE


DECLARE @string NVARCHAR(100) = 'XXXYYYWWW';
SELECT data
FROM dbo.Onecharacter(@string,3)

좋은 웹페이지 즐겨찾기