Проблема с функцией замены - PullRequest
0 голосов
/ 07 мая 2009

В одном из моих наборов результатов у меня есть столбец с char - данными. Я хочу создать еще один столбец, который содержит измененные данные из первого столбца. Там я хочу обменять все 'ö' на oe.

Я попробовал это так:

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

и это не удалось. Я не получаю ошибку, но ö не заменяется.

Я делаю ошибку или просто невозможно выполнить эту операцию?

Спасибо! Patrick

Ответы [ 2 ]

1 голос
/ 08 мая 2009

Вы хотите, чтобы во втором столбце были перечислены все строки, как измененные, так и неизменные, которые вы можете просто использовать:

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

Также вы можете проверить это:

Select 
    NAME1,
    REPLACE(NAME1, 'ö', 'oe') As __NAME1
from 
    xyz
where
    POSSTR(NAME1, 'ö') <> 0
1 голос
/ 07 мая 2009

Согласно документации DB2, POSSTR возвращает 0 (не NULL), если строка не найдена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...