SQLServerで固定長文字列をカンマ区切りに変換する
SQLServerで固定長文字列をカンマ区切りに変換する方法を紹介します。
コーディング例
BEGIN
-- テンポラリテーブル作成
CREATE TABLE #TMP(
ValueStr CHAR(12)
)
-- 初期データ追加
INSERT INTO #TMP
VALUES
('AA20200101BB')
,('AA20200102CC')
;
-- カンマ区切りに変換
SELECT
ValueStr AS [固定長]
,STUFF(STUFF(ValueStr, 11, 0, ','), 3, 0, ',') AS [カンマ区切り]
FROM
#TMP
;
-- テンポラリテーブル削除
DROP TABLE #TMP;
END
実行結果
| 固定長 | カンマ区切り |
|---|---|
| AA20200101BB | AA,20200101,BB |
| AA20200102CC | AA,20200102,CC |
18行目でSTUFF関数を使用し、カンマを挿入しています。
STUFF関数の構文は以下の通りです。
STUFF ( [変換対象の文字列] , [削除挿入開始位置] , [削除する文字数] , [挿入する文字列] )
[変換対象の文字列]に対して、まず[削除挿入開始位置]から[削除する文字数]の長さの文字列を削除し、[削除挿入開始位置]に[挿入する文字列]を挿入します。
以上、「SQLServerで固定長文字列をカンマ区切りに変換する」の紹介でした。







