組込関数 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 |