как заменить подстроку в конце строки, используя SQL? - PullRequest
3 голосов
/ 28 апреля 2020

У меня есть данные в такой таблице:

xxx-xxxxxxx-29
xxx-xxxxxx-87
xxx-xxxxxxxxx-2
xxx-xxx-33

Мне нужно заменить каждый -n в конце на -0n (чтобы добавить ноль между da sh и числом). Оставьте -nn как есть.

Итак, если второй символ справа - '-', замените его на '-0'

, можно ли это сделать с помощью UPDATE?

Ответы [ 2 ]

3 голосов
/ 28 апреля 2020

Мне нужно заменить каждый -n в конце на -0n (чтобы добавить ноль между da sh и числом).

Один из вариантов заключается в используйте regexp_replace():

update mytable set mycol = regexp_replace(mycol, '-(\d)$', '-0\1');

'-(\d)$' совпадения на да sh, за которым следует один ди git в конце строки, и захватывает цифру; затем вы можете добавить начальный '0'.

2 голосов
/ 28 апреля 2020

Вот один из способов:

update mytable
set data = substr(data, 1, length(data)-1) || '0' || substr(data,-1)
where data like '%-_';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...