私は文字列を持っています:
'This is some random text so you don't get upset [rethink]'
またはこの文字列
'This is some random text so you don't get upset [me] and [123]'
[テキスト] 文字列を検索して置き換えるために TSQL を使用することは可能ですか?
結果:
'This is some random text so you don't get upset '
またはこの文字列
'This is some random text so you don't get upset and '
編集:
関数がより動的になるように、受け入れられた回答を変更しました。
CREATE FUNCTION [dbo].[StripTagWithChar]
(@TagLeft NVARCHAR(1),@TagText NVARCHAR(MAX),@TagRight NVARCHAR(1))
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX(@TagLeft,@TagText)
SET @End = CHARINDEX(@TagRight,@TagText,@Start+1)
SET @Length = (@End - @Start) + 1
WHILE (@Start > 0
AND @End > 0
AND @Length > 0)
BEGIN
SET @TagText = STUFF(@TagText,@Start,@Length,'')
SET @Start = CHARINDEX(@TagLeft,@TagText)
SET @End = CHARINDEX(@TagRight,@TagText,@Start+1)
SET @Length = (@End - @Start) + 1
END
RETURN Replace(LTRIM(RTRIM(@TagText)),' ',' ')
END
この関数は、括弧を入力として受け入れます。
select [dbo].[StripTagWithChar]( '{' , 'this is {not} awesome' , '}' )
そして最もクールなことは、次のように同一の括弧でタグをフィルタリングすることです:
select [dbo].[StripTagWithChar]( '=' , 'this is =not= awesome' , '=' )