組込関数 STRING_SPLIT の区切り文字なしバージョンが欲しかったので作ってみた。
※要互換性レベル130以上
T-SQL
CREATE FUNCTION String_Explode (
@input nvarchar(max)
)
RETURNS TABLE
AS
RETURN (
SELECT
CAST(SUBSTRING(input, ordinal, 1) AS nchar(1)) value
,ordinal
FROM (
SELECT
ROW_NUMBER() OVER(ORDER BY value) ordinal
,@input input
FROM
STRING_SPLIT(REPLICATE(',', LEN(@input) - 1), ',')
) t
)
SELECT * FROM dbo.String_Explode('Qiita郁代')
value | ordinal |
---|---|
Q | 1 |
i | 2 |
i | 3 |
t | 4 |
a | 5 |
郁 | 6 |
代 | 7 |