取代字串
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