CftClub.ru
Клуб специалистов ЦФТ-Банк

Поиск подряд повторяющиеся цифры в строке

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
cool_dude
Участник - экстремал


Вступление в Клуб: 05.02.2013
СообщениеПт Дек 04, 2020 13:34   Поиск подряд повторяющиеся цифры в строке Ответить с цитатой
Полезность: Нет оценки
Здравствуйте друзья! Появилась такая задача. Как реализовать поиск подряд повторяющиеся цифры в ИНН. Появились такие некорректные записи в поле ИНН, например 595999999, 999999990, или 197899999 и типа этого. Как найти таких записей?
Заранее благодарю.
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПт Дек 04, 2020 16:00   Re: Поиск подряд повторяющиеся цифры в строке Ответить с цитатой
Полезность: Нет оценки
Цитата:
Здравствуйте друзья! Появилась такая задача. Как реализовать поиск подряд повторяющиеся цифры в ИНН. Появились такие некорректные записи в поле ИНН, например 595999999, 999999990, или 197899999 и типа этого. Как найти таких записей?
Заранее благодарю.


подряд повторяющиеся - это сколько?
595345299 - это норм или не норм? 9 повторяется 2 раза?

А вообще это довольно легко.
select from where regexp_like(c_inn, '0{3}|1{3}|2{3}|3{3}...')
и так далее, перечислить все цифры - их всего 10. То, что в фигурных скобках - это количество подряд идущих цифр.

Другой вариант:

select from where instr(c_inn, '000')>0 or instr(c_inn, '111') or instr(c_inn, '222')Ю0 ... ну, принцип понятен, думаю.
cool_dude
Участник - экстремал


Вступление в Клуб: 05.02.2013
СообщениеПн Дек 07, 2020 06:52   Re: Поиск подряд повторяющиеся цифры в строке Ответить с цитатой
Полезность: Нет оценки
Цитата:

подряд повторяющиеся - это сколько?
595345299 - это норм или не норм? 9 повторяется 2 раза?

А вообще это довольно легко.
select from where regexp_like(c_inn, '0{3}|1{3}|2{3}|3{3}...')
и так далее, перечислить все цифры - их всего 10. То, что в фигурных скобках - это количество подряд идущих цифр.

Другой вариант:

select from where instr(c_inn, '000')>0 or instr(c_inn, '111') or instr(c_inn, '222')Ю0 ... ну, принцип понятен, думаю.


Спасибо за ответ. Но я хочу проверить перед выгрузкой в сsv файл. То есть у меня уже есть селект, который выводить все INN. А потом при выгрузке мне надо проверить. Если INN = 535399999 то INN = ''. Вот это как реализовать? Пробовал instr, не получилось...
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Дек 09, 2020 18:31    Ответить с цитатой
Полезность: Нет оценки
Не проще проверять ключ ИНН?
cool_dude
Участник - экстремал


Вступление в Клуб: 05.02.2013
СообщениеЧт Дек 10, 2020 10:39    Ответить с цитатой
Полезность: Нет оценки
Цитата:
Не проще проверять ключ ИНН?

Как это сделать?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Дек 10, 2020 15:35    Ответить с цитатой
Полезность: Нет оценки
CLIENT.CHECK_INN
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru