我需要将"< ==#" 中的文字排除在最后(例如%)
"TestDescription <==# info "dynamic text" ==>"
我尝试使用替换为%,但它不起作用
select replace ( testfield, '<==# %', '') from table
答案 0 :(得分:3)
以下将做你想做的事:
select left(testfield, charindex('<==#', testfield) - 1)
没有理由为此使用通配符。您只希望字符串的左侧部分位于该子字符串之前。
答案 1 :(得分:0)
如果您想将<==#
替换为%
,请使用
replace(testfield,'<==#','%') as ColName
答案 2 :(得分:0)
您的问题(目前尚不清楚)告诉我您要排除“&lt; ==”和“==&gt;”之间的所有文字
下面的代码段应该有效。
Declare @testfield NVARCHAR(100),
@newfield NVARCHAR(100), @beginloc INT, @endloc INT;
BEGIN
SET @testfield = 'TestDescription <==# info "dynamic text" ==>'
PRINT @testfield
SET @beginloc = PATINDEX('%<==%',@testfield)
SET @endloc = PATINDEX('%==>%',@testfield)
PRINT @beginloc
PRINT @endloc
SET @newfield = SUBSTRING(@testfield,0,18)
PRINT @newfield
END