Если вы являетесь разработчиком SQL, то вы знаете, что оператор WHERE является одним из наиболее часто используемых операторов в SQL-запросах. Он позволяет извлекать строки из таблицы на основе определенных условий. Но что делать, если вам нужно искать записи с похожими шаблонами или значениями и вы не уверены в полном значении? В этом случае используется оператор WHERE LIKE.
Оператор WHERE LIKE в SQL Server используется для сравнения символьной строки с шаблоном. Этот шаблон может включать обычные символы и символы подстановки. Оператор LIKE часто используется в операторе WHERE SQL-запроса для поиска строк, соответствующих указанному шаблону.
Давайте рассмотрим базовый синтаксис оператора WHERE LIKE:
SELECT column1, column2, column3 FROM tableName WHERE columnName LIKE 'YourValue';
В отличие от операторов сравнения, которые требуют точного совпадения, условие WHERE LIKE в SQL позволяет возвращать строки, где определенное значение или значения найдены в любом месте критериев поиска. Это достигается с помощью символов подстановки SQL.
При работе с оператором WHERE LIKE вы чаще всего будете использовать один из следующих символов подстановки для уточнения поиска:
- % – Представляет любое строковое значение, дату, число и т. д., любой длины
- _ – Представляет один символ, пробел, число и т. д.
- [] – Представляет массив символов в указанном диапазоне
Давайте рассмотрим несколько примеров использования этих символов подстановки для фильтрации конкретных имен из таблицы базы данных:
CREATE TABLE [dbo].[TestTable1]( [colID] [int] IDENTITY(1,1) NOT NULL, [firstName] [varchar](20) NULL, [lastName] [varchar](20) NULL ) ON [PRIMARY]; INSERT INTO TestTable1(firstName, lastName) VALUES ('Theodore','Serrano'), ('Rachel','Jones'), ('Omar','Hu'), ('Morgan','Smith'), ('Christina','Rivera'), ('Devin','Ramirez'), ('Shirley','Bruner'), ('Micah','Zeng'), ('Deanna','Ruiz'), ('Ryan','Diaz'), ('Marcus','Phillips'), ('Brad','Yuan'); SELECT * FROM TestTable1 WHERE firstName LIKE 'R%'; SELECT * FROM TestTable1 WHERE firstName LIKE '%y'; SELECT * FROM TestTable1 WHERE lastName LIKE 'H_'; SELECT * FROM TestTable1 WHERE lastName LIKE '_U'; SELECT * FROM TestTable1 WHERE firstName LIKE '__c%'; SELECT ModifiedDate FROM Person.PersonPhone WHERE ModifiedDate LIKE '%2013%'; SELECT * FROM Person.PersonPhone WHERE PhoneNumber LIKE '330%'; SELECT * FROM Person.PersonPhone WHERE PhoneNumber LIKE '____555%'; SELECT * FROM Person.PersonPhone WHERE PhoneNumber NOT LIKE '____555%'; SELECT LastName, FirstName FROM Person.Person WHERE LastName LIKE 'J[abc]%'; SELECT LastName, FirstName FROM Person.Person WHERE LastName LIKE 'J[^abc]%';
Используя оператор WHERE LIKE и соответствующие символы подстановки, вы можете создавать более эффективные запросы и получать желаемые результаты из вашей базы данных SQL Server.
Так что в следующий раз, когда вам понадобится искать записи с похожими шаблонами или значениями, не забудьте использовать мощь оператора WHERE LIKE в SQL Server!
Статья последний раз обновлена: 2023-05-01