我做更換
SET @data = REPLACE(@data, 'Riched20 10.0.19041}', '');
可以,但是最近發現可以
Riched20 10.0.18362 etc
在常見情況下如何替換'Riched20 ...}'?
我可以使用正則運算式嗎?
它應該在 T-SQL 中實作
uj5u.com熱心網友回復:
如果問題與這個問題一樣簡單,那么您可以改為找到字串'Riched20'在您的值中的位置,然后找到}它之后出現的第一個位置,并使用它STUFF來洗掉該范圍內的文本.
這假定該值將始終具有 a }after 'Riched20',并且如果存在 a }then'Riched20'也會出現。如果不是這種情況,您將獲得 value NULL。
DECLARE @data varchar(100) = 'sdjkafhbgtajl asdgasdf, Riched20 10.0.19041} dlkghbsdfl';
SET @data = STUFF(@data, CHARINDEX('Riched20',@data),CHARINDEX('}',@data,CHARINDEX('Riched20',@data)) - CHARINDEX('Riched20',@data) 1,'');
SELECT @data;
如果您需要“真正的”模式替換,那么您就不走運了;正如評論中提到的那樣,T-SQL 不支持這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514556.html
下一篇:顯示表中缺少值的帳戶
