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







