Подстрока SQL с условием - PullRequest
0 голосов
/ 23 мая 2018

Я должен извлечь подстроку, но только если условие выполнено.Пользователи в этом столбце должны заполнить номера телефонов клиентов (это столбец varchar),

Некоторые примеры этих сохраненных значений:

  1. 23 == 880-3112 ==9435
  2. 52 == 031 31466 == 171
  3. 321 == 15850

'=' - это числа, которыми я не хочу делиться.

Мне нужно извлечь номер мобильного телефона (номер длиной 10), но, как вы можете видеть, эти номера не хранятся в одинаковых позициях, я не могу использовать функцию LEFT () или RIGHT ()из-за этого некоторые разделяются символом «-», другие - пробелом между номером дома и номером мобильного телефона.

Если это невозможно сделать с помощью SQL, я использую Java, но даже незнаю, с чего начать.

Заранее спасибо.

РЕДАКТИРОВАТЬ: я использую SQL SERVER 2012 Ожидаемые результаты из примеров

  1. 3112 == 9435
  2. 31466 == 171
  3. 312 == 15850

Я хочу всегда получать номер из 10 символов.

Извините, спасибо

1 Ответ

0 голосов
/ 23 мая 2018

Вы можете использовать сравнение строк функция

Где часть вашего первого примера будет

WHERE TELEPHONE_NO LIKE '23%%880-3112%%9435'

[Редактировать]

Для извлечения подстроки вы можете использовать https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substring-index

mysql> SELECT SUBSTRING_INDEX('23==880-3112==9435', '-', 10);
    -> '3112==9435'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...