代码之家  ›  专栏  ›  技术社区  ›  Lance Roberts

SQL字符串替换解决方案

  •  1
  • Lance Roberts  · 技术社区  · 15 年前

    我在一个修改过的Sybase10版本中工作,这个版本没有stufacture、replace或str_replace函数。我需要在一些记录中替换字符串的一部分。

    有没有什么创造性的方法可以解决这个问题,所以我不需要手动操作它们?

    例子:

    UPDATE status
    SET description = replace(description,'abc','def')
    WHERE name = 'test'
    

    编辑: 我发现我们没有字符串操作函数,我必须进行导出和导入才能进行批量字符串更改。我会留下这个问题,这样那些不受限制的人就能找到答案。

    2 回复  |  直到 13 年前
        1
  •  6
  •   Lukasz Lysik    15 年前
    UPDATE status
    SET description = SUBSTRING(description,1,CHARINDEX('abc',description)-1) 
                      + 'def' + 
                      SUBSTRING(description,CHARINDEX('abc',description)+CHAR_LENGTH('abc'),CHAR_LENGTH(description)-CHARINDEX('abc',description))
    WHERE name = 'test'
    

    很棘手,您必须将要更改的文本放在少数地方,但它可以工作;-)

        2
  •  0
  •   D'Arcy Rittich    15 年前

    charindex和substring的组合应该对您有效。