簡體   English   中英

替換字符串最后匹配的 substring

[英]Replace last matched substring of string

我想替換匹配的最后一個 substring 字符串

例子

DECLARE @string NVARCHAR(MAX)= 'Greeting<br><br>As many offices move to remote work. <br><br>Have a good day<br><br>'

SELECT REPLACE(@string,'<br><br>','')

結果需要

 @string = 'Greeting<br><br>As many offices move to remote work. <br><br>Have a good day'

需要更換最后兩個
有空的

如果性能不是問題,您可以嘗試將字符串反轉,然后將第一部分剪掉並反轉回來

DECLARE @string NVARCHAR(MAX)= 'Greeting<br><br>As many offices move to remote work. <br><br>Have a good day<br><br>'

declare @pat nvarchar(max) = (select REVERSE('<br><br>'))
declare @rsv nvarchar(max) = (select REVERSE(@string))
declare @idx int = (select CHARINDEX(@pat, @rsv, 0))

declare @result nvarchar(max) = (select left(@rsv, @idx - 1) + right(@rsv, len(@rsv) - @idx - LEN(@pat) + 1))
set @result = reverse(@result)

print @result

結果是:

Greeting<br><br>As many offices move to remote work. <br><br>Have a good day

您可以縮短代碼。 我只是把它寫得很詳細,所以邏輯會很清楚。

如果它總是在最后,另一種更簡單的方法是在字符串中添加一個特殊字符,然后替換包括它。

select @string=Replace(@string+'~','<br><br>~','')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM