2009-09-22 107 views
1

我正在使用Sybase 10的修改版本,该版本没有东西,替换或str_replace函数。我需要在许多记录中替换部分字符串。SQL字符串替换解决方法

是否有创意的方法来编程这个,所以我不需要手动完成所有的工作?

例子:

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

编辑:我发现,我们没有任何的字符串处理函数,我必须做出口和进口做批量串的变化。我会留下这个问题,以便其他不受限制的人能够找到答案。

+0

您可以使用哪些职能?所有字符串函数都被禁用? – 2009-09-22 17:06:24

+0

我认为有基本的,如右,左,中等,但我没有测试它们。这是一个供应商修改的sybase安装,我没有一个完整的列表,列出哪些是不行的。另外,它的安装时间很复杂(1999-2000)。 – 2009-09-22 17:09:32

回答

6
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' 

棘手,你必须把你想在几个地方需要修改的文本,但它工作;-)

0

charindex和substring的组合应该适合你。