Запрос или функция в SQLServer - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть DB в SQLServer , в котором есть столбец «Сотовые телефоны», проблема в том, что пользователи вводили свой телефон двумя способами:

Форма A: 0351-153111222 . В этом случае мне нужно удалить 0 , удалить - и удалить 15 , оставив в качестве окончательной формы 3513111222

Форма B: 153111222 . В этом случае мне нужно удалить 1 5 и добавить в начале 351 , оставляя в качестве окончательной формы 3513111222

Как я не делаюЯ хочу обновить всю таблицу, я хотел знать, есть ли какой-либо запрос или функция, которая позволяет мне "приспособить" или "исправить" эти формы так, чтобы они выглядели так:

Форма Я хочу, чтобы она выглядела так: 3513111222

1 Ответ

1 голос
/ 08 ноября 2019

Логика в SQL будет выглядеть следующим образом:

update t
    set phone = (case when phone like '0%-15%'
                      then stuff(replace(phone, '-15', ''), 1, 1, '')
                      when phone like '15%'
                      then stuff(phone, 1, 2, '')
                      else phone
                 end)
    where phone like '0%-15%' or phone like '15%';

Это единовременное исправление. Вам следует исправить процесс приема данных, чтобы числа были в нужном формате.

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