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中的替換函式replace()使用SQL函式
- sql 正則替換資料庫語句!SQL資料庫
- Mybatis(一)Porxy動態代理和sql解析替換MyBatisSQL
- mysql使用phpmyadmin批次替換資料sql語句MySqlPHP
- HTML 替換元素與非替換元素HTML
- MS SQL 替換欄位中的 u00a0SQL
- sql server 資料型別轉換函式SQLServer資料型別函式
- Vi替換
- 替換空格
- SQL SERVER 日期格式化、日期和字串轉換SQLServer字串
- sql serverSQLServer
- js replace替換字串,同時替換多個方法JS字串
- 替換橫槓
- linux文字替換Linux
- 替換燈桶
- Webpack-dev-server結合後端伺服器的熱替換配置WebdevServer後端伺服器
- SQL Server 匯出Excel有換行的解決方法SQLServerExcel
- SQL語句替換查詢結果的的寫法舉例SQL
- Moebius for SQL ServerSQLServer
- sql server 使用SQLServer
- SQL Server教程SQLServer
- Linux vi替換字串Linux字串
- vim查詢替換
- 里氏替換原則
- Everspin MRAM替換FRAM
- perl替換特殊字元字元
- vim替換所有字元字元
- centos 替換yum源CentOS
- JS RegExp 替換字元JS字元
- SQL Server中datetimeset轉換datetime型別問題淺析SQLServer型別
- SQL Server中提前找到隱式轉換提升效能的辦法SQLServer
- SQL SERVER優化SQLServer優化
- Nodejs 操作 Sql ServerNodeJSSQLServer
- SQL Server 別名(as)SQLServer
- sql server遞迴SQLServer遞迴
- Sql server with as update用法SQLServer
- SQL Server下載SQLServer
- SQL Server Left joinSQLServer