SQL Server 替換
場景
1.替換欄位中全部匹配的字串
2.替換指定位置的字串,如匹配目標字串的第一個,或者最後一個替換
方法
1.REPLACE替換全部匹配內容
REPLACE(string_expression, string_pattern, string_replacement)
引數:
string_expression 要搜尋的字串表示式
string_pattern 是要查詢的子字串
string_replacement 替換字串
2.STUFF刪除指定長度的字元,並在指定的起點處插入另一組字元
STUFF(string_expression1, start, length, string_expression2)
引數:
string_expression1 要搜尋的字串表示式
start 刪除開始位(>=1)
length 刪除長度
string_expression2 插入字串
Demo
目標資料庫如下
需求1:替換所有PersonId和PersonName中的1414030230和張三 替換為 2021和王加油
select F_Id,F_PersonId,REPLACE(F_PersonId,'1414030230','2020'),
F_PersonName,REPLACE(F_PersonName,N'張三',N'王加油') from TempPerson
需求2:替換第一個匹配的資料
--CHARINDEX:匹配的字串起始位置,沒有匹配的資料返回值為0
--len:字串長度
select F_Id,F_PersonId,
STUFF(F_PersonId,CHARINDEX('1414030230',F_PersonId),len('1414030230'),'2020'),
F_PersonName,
STUFF(F_PersonName,CHARINDEX(N'張三',F_PersonName),len(N'張三'),'王加油')
from TempPerson
需求3:替換最後一個匹配的資料
--REVERSE:字串倒轉
select F_Id,F_PersonId,
REVERSE(STUFF(REVERSE(F_PersonId),CHARINDEX(REVERSE('1414030230'),REVERSE(F_PersonId)),len('1414030230'),REVERSE('2020'))),
F_PersonName,
REVERSE(STUFF(REVERSE(F_PersonName),CHARINDEX(REVERSE(N'張三'),REVERSE(F_PersonName)),len(N'張三'),REVERSE(N'王加油')))
from TempPerson
從上面兩個示例中可看出,有的資料替換為NULL,這是因為CHARINDEX方法沒有找到匹配的字串時返回值為0,STUFF方法替換開始位需要大於0,等於0時,返回內容為NULL,所以在實際使用STUFF中,避免產生NULL,需要加上where條件篩選到想要的資料再使用STUFF替換。
相關文章
- SQL Server資料庫內容替換方法SQLServer資料庫
- Sql Server 替換某一列中指定的文字內容SQLServer
- SQL Server TEXT型別欄位字串替換示例處理指令碼SQLServer型別字串指令碼
- sql 優化過程之union 替換 orSQL優化
- 在sql語句中替換Not In 的方法SQL
- sql server 行列轉換SQLServer
- SQL中的替換函式replace()使用SQL函式
- sql server行列轉換案例SQLServer
- sql server型別轉換SQLServer型別
- sql 正則替換資料庫語句!SQL資料庫
- HTML 替換元素與非替換元素HTML
- Mybatis(一)Porxy動態代理和sql解析替換MyBatisSQL
- 替換tabBartabBar
- 替換(substitution)
- SQL Server中行列轉換 Pivot UnPivotSQLServer
- mysql使用phpmyadmin批次替換資料sql語句MySqlPHP
- 【SQL優化】UNION替換OR效率測試及總結SQL優化
- MS SQL 替換欄位中的 u00a0SQL
- js replace替換字串,同時替換多個方法JS字串
- WAS證書過期替換之獨立WAS Server之文字操作版Server
- 08:字元替換字元
- RACSubject替換代理
- sed 字串替換字串
- ACM 字串替換ACM字串
- asp字元替換字元
- vi替換命令
- 替換橫槓
- SQL Server 字串和時間相互轉換SQLServer字串
- 【SQL最佳化】UNION替換OR效率測試及總結SQL
- 替換空格 將一個字串中的空格替換成“ ”字串
- SQL Server中TEXT/NTEXT欄位內容替換方法總結(SQL 2005及以上建議使用VARCHAR(MAX)/NVARCHAR(MAX)代替)...SQLServer
- **PHP中替換換行符PHP
- 替換SQL欄位中的換行符,回車符,空格等特殊符號SQL符號
- sql server 資料型別轉換函式SQLServer資料型別函式
- SQL Server 內建轉換函式介紹SQLServer函式
- SQL Server 實現行列(縱橫表)轉換SQLServer
- SQL Server與Access、Excel的資料轉換SQLServerExcel
- SQL SERVER 與ACCESS、EXCEL的資料轉換SQLServerExcel