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で固定長文字列をカンマ区切りに変換する」の紹介でした。