Поиск шаблона с использованием patindex в SQL

#sql #patindex

#sql #patindex

Вопрос:

У нас есть столбец почтового индекса, в котором неверные данные введены пользователем ввода данных. Пример: Если кто-то не предоставляет почтовый индекс, пользователь, вводящий данные, обычно вводит 00000 или 0000000 (или 00, или 000, или 0).

Мне нужно разработать запрос, который будет просматривать столбец Zipcode и исключать все, что имеет только номер 0. Поэтому исключите ‘0’, ’00’, ‘000’, и т.д. Возможно ли это с помощью PatIndex?

Комментарии:

1.Является ли ваша СУБД sql Server? patindex возвращает позицию шаблона.. какая-либо конкретная причина использования только patindex по вашему вопросу?

2. Это sql server. Конкретной причины нет. Я просто подумал, что patindex может сделать этот трюк.

Ответ №1:

Вы должны иметь возможность использовать like, если ваша версия базы данных допускает регулярные выражения.

 WHERE ZIPCODE NOT LIKE '%[^0]%'
  

^ означает не ноль. Итак, в регулярных выражениях говорится, что соответствует всему, что не равно нулю, а затем это отрицается значением NOT. Итак, мы находим все, что содержит нули.

Ответ №2:

Вы пробовали использовать что-то вроде ilike? ilike используется в качестве подстановочного знака для сопоставления шаблона с почтовым индексом, который вы ищете. ПРИМЕР:

 SELECT * FROM TABLE_NAME WHERE COLUMN_NAME ILIKE '%<ENTER VALUE>%';