在我的一个结果集中,我有一个包含char数据的列。我想创建另一个列,该列包含第一列中的更改数据。在那里,我想与oe交换所有'ö'。
我试过这样:
Select NAME1,
case when POSSTR(NAME1, 'ö') is not null then REPLACE(NAME1, 'ö', 'oe')
end As __NAME1
from xyz;
它失败了。我没有收到错误,但ö没有被替换。
我犯了错误,或者根本无法执行此操作?
谢谢! 帕特里克
答案 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