替换功能问题

时间:2009-05-07 14:29:42

标签: sql replace db2

在我的一个结果集中,我有一个包含char数据的列。我想创建另一个列,该列包含第一列中的更改数据。在那里,我想与oe交换所有'ö'。

我试过这样:

Select NAME1,
    case when POSSTR(NAME1, 'ö') is not null then REPLACE(NAME1, 'ö', 'oe')
    end As __NAME1
from xyz;

它失败了。我没有收到错误,但ö没有被替换。

我犯了错误,或者根本无法执行此操作?

谢谢! 帕特里克

2 个答案:

答案 0 :(得分:1)

根据DB2文档,如果找不到字符串,POSSTR将返回0(非NULL)。

答案 1 :(得分:1)

您希望第二列列出所有行,无论是更改还是未更改,您只需使用:

Select 
    NAME1,
    REPLACE(NAME1, 'ö', 'oe') As __NAME1
from xyz;

你也可以测试一下:

Select 
    NAME1,
    REPLACE(NAME1, 'ö', 'oe') As __NAME1
from 
    xyz
where
    POSSTR(NAME1, 'ö') <> 0
相关问题