取代字串

Oracle:

UPDATE table_name SET column_name=REPLACE('column_name', 'select_char', 'change_char');

column_name:指定欄位 或是 特定字串。

select_char:要替換的字元。

change_char:要取代的字元。

Sybase:

沒有REPLACE函數

用 STUFF 函數取代

UPDATE table_name SET column_name=STUFF('column_name', start_char, char_length, 'change_char');

column_name:指定欄位 或是 特定字串。

start_char:起始位置。

char_length:字串長度。

change_char:要取代字元。

查詢起始位置可以使用 CHARINDEX 函數

CHARINDEX('char', column_name)

char:查詢的字元或字串。

column_name:搜尋的欄位或字串。

UPDATE table_name SET column_name = STUFF('column_name', CHARINDEX('char', column_name), char_length, 'change_char');

如果預取代的字串中,有兩個以上要取代的字取,則需要加上 while

/* 設定區域變數(型態:數值) */

DECLARE @ch NUMERIC

BEGIN

/* 取得第一個 要取代字元的位置 */

SELECT @ch= CHARINDEX('char', column_name) FROM table_name [WHERE column_name1 = value]

/* 當要取代的字元不為 0 */

WHILE @ch>0

BEGIN

/* 取代字元 */

UPDATE table_name SET column_name = STUFF('column_name', CHARINDEX('char', column_name), char_length, 'change_char') [WHERE column_name1 = value]

/* 取得下一個取代字元的位置 */

SELECT @ch= CHARINDEX('char', column_name) FROM table_name [WHERE column_name1 = value]

END

END