Как экранировать квадратные скобки в предложении LIKE в SQL Server?

Опубликовано: 1 Сентября, 2022

Здесь мы увидим, как экранировать квадратные скобки в предложении LIKE. Предложение LIKE используется для сопоставления с образцом в SQL с использованием подстановочных знаков, таких как %, ^, [] и т. д. Если мы попытаемся отфильтровать запись, используя предложение LIKE со строкой, состоящей из квадратных скобок, мы не получим ожидаемых результатов.

Например:

Для строкового значения Роми[Р]кумари в таблице. Если мы попытаемся применить LIKE 'Romy[R]%' к оператору select, он ничего не вернет.

Объяснение:

Квадратные скобки[] входят в число операторов подстановки, используемых в SQL с предложением LIKE. Он используется для сопоставления любого одиночного символа в указанном диапазоне, например ([bh]) или наборе ([ghijk]).

Мы можем экранировать квадратные скобки двумя способами:

  • Экранирование с помощью еще одной квадратной скобки
  • Побег с использованием Escape-символа

Шаг 1: Создайте базу данных

Базу данных можно создать с помощью команды CREATE.

Запрос:

CREATE DATABASE geeks;

Шаг 2: Использование базы данных

Используйте приведенный ниже оператор SQL, чтобы переключить контекст базы данных на гиков:

Запрос:

USE geeks;

Шаг 3: Определение таблицы

У нас есть следующая demo_table в нашей компьютерной базе данных.

Запрос:

CREATE TABLE demo_table(
FIRSTNAME VARCHAR(20), LASTNAME VARCHAR(20),
EMPCODE VARCHAR(20));

Шаг 4: Вставка данных в таблицу

Запрос:

INSERT INTO demo_table VALUES
("ROMY", "Kumari", "ROMY[78]KUM"),
("Rinkle", "Arora", "RINKLE[78}ARO"),
("Nikhil", "Kalra","NIKHIL[90]Kal"),
("Pushkar", "Jha", "PUSHKAR[91]JHA"),
("Sujata", "jha", "SUJATA[98]JHA"),
("Roshini", "Kumari","ROSHINI[78]");

Шаг 5: Для просмотра данных таблицы

Запрос:

SELECT * FROM demo_table;

Выход:

Способ 1 : использование дополнительной скобки

Синтаксис:

Для сопоставления «ROMY [78]»

SELECT *  
  FROM table_name 
  WHERE column_name LIKE "ROMY[[]78]%"

Запрос: чтобы соответствовать EMPCODE, имеющему [78]

SELECT *  
  FROM demo_table  
  WHERE EMPCODE LIKE "%[[]78]%"

Выход:

Способ 2: использование escape-символа

В этом методе мы должны указать символ с ключевым словом ESCAPE после предложения LIKE.

Синтаксис:

Для сопоставления «ROMY [78]»

SELECT *  
  FROM table_name  
  WHERE column_name LIKE "ROMY[78]%" ESCAPE "";

Запрос:

SELECT *  
  FROM demo_table
  WHERE EMPCODE LIKE "%[78]%" ESCAPE "";

Выход: