SQLServerで固定長文字列をカンマ区切りに変換する

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

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ