Освоение SQL-запросов: фильтрация с помощью «НЕ НРАВИТСЯ» и списков

В мире SQL фильтрация данных — это фундаментальная задача, позволяющая извлекать нужную информацию из баз данных. Для этой цели обычно используется предложение «WHERE», а оператор «LIKE» помогает нам искать определенные шаблоны внутри столбца. Но что, если мы хотим исключить определенные шаблоны из нашего поиска? В этой статье мы рассмотрим различные методы достижения этой цели, используя оператор «НЕ НРАВИТСЯ» в сочетании со списками. Итак, пристегнитесь и приготовьтесь улучшить свои навыки выполнения SQL-запросов!

Метод 1: использование оператора NOT LIKE с одним шаблоном
Начнем с простого примера. Предположим, у нас есть таблица «клиенты» со столбцом «имя», и мы хотим получить всех клиентов, имена которых не содержат шаблон «Смит». Мы можем использовать следующий SQL-запрос:

SELECT * FROM customers WHERE name NOT LIKE '%Smith%';

Этот запрос вернет все строки, в которых столбец «имя» не соответствует шаблону «Смит».

Метод 2: исключение нескольких шаблонов с помощью NOT LIKE и OR
Что делать, если мы хотим исключить несколько шаблонов из нашего поиска? Мы можем добиться этого, объединив оператор «НЕ НРАВИТСЯ» с оператором «ИЛИ». Например, предположим, что у нас есть список нежелательных имен: «Смит», «Джонсон» и «Уильямс». Мы можем использовать следующий запрос:

SELECT * FROM customers WHERE name NOT LIKE '%Smith%' OR name NOT LIKE '%Johnson%' OR name NOT LIKE '%Williams%';

Этот запрос исключит все строки, в которых столбец «имя» соответствует любому из указанных шаблонов.

Метод 3: использование оператора NOT LIKE со списком шаблонов
Чтобы сделать наши запросы более краткими, мы можем использовать возможности оператора SQL «IN». Вместо использования нескольких условий «ИЛИ» мы можем создать список шаблонов и использовать оператор «НЕ НРАВИТСЯ» с оператором «В». Вот пример:

SELECT * FROM customers WHERE name NOT LIKE ANY (ARRAY['%Smith%', '%Johnson%', '%Williams%']);

Этот запрос дает тот же результат, что и метод 2, но в более компактной и читаемой форме.

Метод 4: использование регулярных выражений с NOT LIKE
Если вы имеете дело со сложными шаблонами, регулярные выражения могут стать мощным инструментом. SQL обеспечивает поддержку регулярных выражений посредством таких функций, как «REGEXP_LIKE». Чтобы исключить шаблоны с использованием регулярных выражений, мы можем объединить «REGEXP_LIKE» с оператором «NOT LIKE». Вот пример:

SELECT * FROM customers WHERE NOT REGEXP_LIKE(name, 'Smith|Johnson|Williams');

Этот запрос вернет все строки, в которых столбец «имя» не соответствует шаблону регулярного выражения «Смит|Джонсон|Уильямс».

В этой статье мы рассмотрели различные методы фильтрации данных с помощью оператора «NOT LIKE» в SQL. Объединив его со списками, оператором «ИЛИ» и регулярными выражениями, мы можем эффективно исключать определенные шаблоны из наших запросов. Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям, и всегда оптимизируйте запросы для повышения производительности. Удачных запросов!