SQLServerで文字列を置換する

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

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

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

コーディング例

SELECT
     TRANSLATE('[123.12]', '[]' , '()' )                                 AS [結果1]
    ,REPLACE(  '[123.12]', '[]' , '()' )                                 AS [結果2]
    ,REPLACE(REPLACE('[123.12]', '[' , '(' ), ']', ')')                  AS [結果3]
    ,TRANSLATE('[123.12]', '123', '234')                                 AS [結果4]
    ,REPLACE(REPLACE(REPLACE('[123.12]', '1', '2'), '2', '3'), '3', '4') AS [結果5]
;

実行結果

結果1 結果2 結果3 結果4 結果5
(123.12) [123.12] (123.12) [234.23] [444.44]

文字列の置換には一般的にREPLACE関数を使用しますが、TRANSLATE関数でも置換できます。
2行目ではTRANSLATE関数を使用して、文字列 “[123.12]" のうち “[" を “(" に置換し、"]" を “)" に置換しています。
これを3行目のようにREPLACE関数を使用すると、"[]" が文字列 “[123.12]" に存在しないため、何も置換されません。
2行目をREPLACE関数で書き換えると4行目のようになり、REPLACE関数を2回実行することになります。
しかし5行目のようにTRANSLATE関数を使用して “123" を “234" に置換する場合、6行目のようにREPLACE関数で1文字ずつ置換した場合とでは結果が異なります。
このようにTRANSLATE関数を使用すると便利に置換することができます。
注意事項として、TRANSLATE関数の第2引数と第3引数の文字数を同じにしておかないとエラーが発生します。

以上、SQLServerで文字列を置換する方法について紹介でした。

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

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

お問合せ