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で文字列を置換する方法について紹介でした。







