如何使用替换为%

时间:2014-04-21 18:30:56

标签: sql sql-server-2008

我需要将"< ==#" 中的文字排除在最后(例如%)

"TestDescription  <==# info "dynamic text" ==>"

我尝试使用替换为%,但它不起作用

select replace ( testfield, '<==# %', '') from table 

3 个答案:

答案 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