原文鏈接:SQL Server中替換函數STUFF、replace的使用
STUFF ( character_expression , start , length ,character_expression )
參數
character_expression
一個字符數據表達式。character_expression 可以是常量、變量,也可以是字符列或二進制數據列。
start
一個整數值,指定刪除和插入的開始位置。如果 start 或 length 爲負,則返回空字符串。如果 start 比第一個character_expression 長,則返回空字符串。start 可以是 bigint 類型。
length
一個整數,指定要刪除的字符數。如果 length 比第一個 character_expression 長,則最多刪除到最後一個character_expression 中的最後一個字符。length 可以是 bigint 類型。
返回類型
如果 character_expression 是受支持的字符數據類型,則返回字符數據。如果 character_expression 是一個受支持的 binary 數據類型,則返回二進制數據。
備註
如果開始位置或長度值是負數,或者如果開始位置大於第一個字符串的長度,將返回空字符串。如果要刪除的長度大於第一個字符串的長度,將刪除到第一個字符串中的第一個字符。
如果結果值大於返回類型支持的最大值,則產生錯誤。
示例
以下示例在第一個字符串 abcdef 中刪除從第 2 個位置(字符 b)開始的三個字符,然後在刪除的起始位置插入第二個字符串,從而創建並返回一個字符串。
SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO
下面是結果集:
---------
aijklmnef
(1 row(s) affected)
Sql replace 函數的使用
REPLACE
用第三個表達式替換第一個字符串表達式中出現的所有第二個給定字符串表達式。
語法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )
參數
''string_replace1''
待搜索的字符串表達式。string_replace1 可以是字符數據或二進制數據。
''string_replace2''
待查找的字符串表達式。string_replace2 可以是字符數據或二進制數據。
''string_replace3''
替換用的字符串表達式。string_replace3 可以是字符數據或二進制數據。
返回類型
如果 string_replace(1、2 或 3)是支持的字符數據類型之一,則返回字符數據。如果 string_replace(1、2 或 3)是支持的 binary 數據類型之一,則返回二進制數據。
示例
下例用 xxx 替換 abcdefghi 中的字符串 cde。
SELECT REPLACE(''abcdefghicde'',''cde'',''xxx'')
GO
下面是結果集:
abxxxfghixxx
(1 row(s) affected)