Sybase SQL:查找字符串中的最后一个字符并替换它

时间:2014-11-20 08:33:41

标签: sql sybase

我在字段context中有一个字符串。此字段中的字符串构建为两个版本。我需要按照逻辑附加字符串。

  • 在此字符串中查找最后
  • 将此字符替换为以下字符串:123

现在我尝试了这个没有成功

declare @pf varchar(10), @pos int, 
select @pflist = context,
       @pos = LEN(@pflist) - CHARINDEX('"',REVERSE(@pflist))    
UPDATE table SET CONTEXT = str_replace(convert(varchar(255),CONTEXT), ',
                 "'+ @pos +'"', '123’)

所以基本上我将带字符串的字段设置为变量,尝试反转该字段,保存变量@pos中的位置,并用我的字符串123替换该位置的字符串。

我收到消息:invalid column name CONTEXT。所以我想这会导致麻烦@pflist = context,

非常感谢你们。

2 个答案:

答案 0 :(得分:1)

试试这个:

    declare @pf varchar(10), @pos int, 
    select @pflist = context, @pos = LEN(@pflist) - CHARINDEX('"',REVERSE(@pflist))

    UPDATE table SET CONTEXT = CONCAT(LEFT(CONTEXT, CHARINDEX('"',CONTEXT)-1), '123')

答案 1 :(得分:0)

如果您需要对表中的所有行进行此类修改 - 您可以使用下一个脚本:

select    
    Left(CONTEXT, LEN(CONTEXT) - CHARINDEX('"',REVERSE(CONTEXT))) + '123' + Right(CONTEXT, CHARINDEX('"',REVERSE(CONTEXT))-1)
from TABLE