Published on

January 1, 2022

Понимание оператора WHERE LIKE в SQL Server

Если вы являетесь разработчиком 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

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.