在本教學中,將學習如何使用SQL Server REPLACE()
函數通過字串中的新子字串替換所有出現的子字串。
SQL Serer REPLACE函數簡介
要使用新子字串替換字串中所有出現的子字串,請使用REPLACE()
函數,如下所示:
REPLACE(input_string, substring, new_substring);
在這個語法中:
input_string
是要搜索的任何字串運算式。substring
是要替換的子字串。new_substring
是替換字串。
REPLACE()
函數返回一個新字串,其中出現所有子字串被new_substring
替換。 如果任何參數為NULL
,則返回NULL
。
SQL Server REPLACE()函數示例
下麵舉一些使用REPLACE()函數例子來瞭解它如何工作的。
1. REPLACE()函數使用帶文字字串
以下示例使用REPLACE()
函數指定字串中的"tea"
替換為"coffee"
:
SELECT
REPLACE(
'It is a good tea at the famous tea store.',
'tea',
'coffee'
) result;
執行上面查詢語句,得到以下結果:
從輸出中可以看出,所有出現的'tea'
都被'coffee'
所取代。
2. 對表列使用REPLACE()函數
在此示例中,將使用示例資料庫中的sales.customers
表:
此示例調用REPLACE()
函數兩次以新格式格式化電話號碼:
SELECT
first_name,
last_name,
phone,
REPLACE(REPLACE(phone, '(', ''), ')', '') phone_formatted
FROM
sales.customers
WHERE phone IS NOT NULL
ORDER BY
first_name,
last_name;
執行上面查詢語句,得到以下結果:
這是怎麼運作的?
第一次調用:REPLACE(phone, '(', '')
用空格替換字元'('
電話號碼,(916) 381-6003
-> 916) 381-6003
。
第二個調用重用第一個調用的結果,並用空格替換字元')'
,例如,916) 381-6003
-> 916 381-6003
。
3. 使用REPLACE()函數來糾正表中的數據
REPLACE()
函數通常用於更正表中的數據。 例如,用新的鏈接替換過時的鏈接。
以下是語法:
UPDATE
table_name
SET
column_name = REPLACE(column_name, 'old_string','new_string')
WHERE
condition;
例如,要將電話號碼的區號從916
更改為917
,請使用以下語句:
UPDATE
sales.customers
SET
phone = REPLACE(phone,'(916)','(917)')
WHERE
phone IS NOT NULL;
注意,應該在執行替換之前備份表。
在本教學中,學習了如何使用SQL Server REPLACE()
函數將字串中所有出現的子字串替換為新的子字串。
上一篇:
SQL Server字串函數
下一篇:
SQL Server Window函數