SQLServerで文字列の一部を置き換える

データベースSQLServer,データベース

記事内に広告が含まれています。

SQLServerで文字列の一部を置き換える方法について紹介します。

コーディング例

BEGIN
    CREATE TABLE #WRK_TBL(
        [ID]    INT
        ,[Text] NVARCHAR(50)
    );

    INSERT INTO #WRK_TBL
    VALUES (1, '1234567890')
          ,(2, '12')
          ,(3, '1')
          ,(4, '')
          ,(5, NULL)
    ;

    SELECT
        [ID]
        ,[Text]
        ,STUFF([Text], 2, 3, 'abcde') AS [Text2]
    FROM
        #WRK_TBL
    ;

    DROP TABLE #WRK_TBL;
END

実行結果

ID Text Text2
1 1234567890 1abcde567890
2 12 1abcde
3 1 NULL
4 NULL
5 NULL NULL

文字列を置き換えるにはSTUFF関数を使用します。
18行目では[Text]列の値の2文字目から3文字分を"abcde"に置き換えています。
ID=1のレコードのように、"1234567890″の2文字目から3文字分である"234″が"abcde"に置き換えられ、"1abcde567890″となります。
ID=2のレコードのように、"12″のように2文字目から3文字分ない場合は2文字目が"abcde"に置き換えられ、"1abcde"となります。
ID=3のレコードのように、1文字しかない場合は、NULLとなります。
ID=4のレコードのように、空文字の場合は、NULLとなります。
ID=5のレコードのように、NULLの場合は、NULLとなります。

以上、SQLServerで文字列の一部を置き換える方法についての紹介でした。

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

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

お問合せ