2009-09-22 108 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的組合應該適合你。