Съвпадение на образци в SQL заявки с заместващи символи

SQL съвпадението на шаблони ви позволява да търсите модели в данни, ако не знаете точната дума или фраза, която търсите. Този вид SQL заявката използва заместващи символи, за да съответства на шаблон, вместо да го посочва точно. Например, можете да използвате заместващия знак „C%“, за да съответства на всеки низ, започващ с главна буква C.

Лупа
Кейт Тер Хаар / Flickr / CC с 2.0

Използване на оператора LIKE

За да използвате заместващ израз в SQL заявка, използвайте оператора LIKE в клауза WHERE и затворете шаблона в единични кавички.

Използване на% заместващ знак за извършване на обикновено търсене

За да търсите служител във вашата база данни с фамилно име, започващо с буквата C, използвайте следния оператор Transact-SQL:

ИЗБЕРЕТЕ *
ОТ служители
WHERE last_name КАТО „C%“

Пропускане на шаблони с помощта на ключовата дума NOT

Използвайте ключовата дума NOT, за да изберете записи, които не съответстват на модела. Например тази заявка връща всички записи, чието име е последно не започнете с C:

instagram viewer
ИЗБЕРЕТЕ *
ОТ служители
WHERE last_name НЕ КАТО "C%"

Съвпадение на шаблон навсякъде, като два пъти използвате% заместващ знак

Използвайте два екземпляра на % заместващ знак, за да съответства на определен модел навсякъде. Този пример връща всички записи, които съдържат C навсякъде в фамилното име:

ИЗБЕРЕТЕ *
ОТ служители
WHERE last_name КАТО „% C%“

Намиране на съвпадение на шаблон на определена позиция

Използвай _ заместващ символ за връщане на данни на определено място. Този пример съвпада само ако C се появи на третата позиция в колоната с фамилното име:

ИЗБЕРЕТЕ *
ОТ служители
КЪДЕ фамилно име КАТО '_ _C%'

Поддържани заместващи изрази в Transact SQL

Има няколко израза с заместващи символи, поддържани от Transact SQL:

  • The % заместващ знак съответства на нула или повече знаци от всякакъв тип и може да се използва за дефиниране на заместващи символи както преди, така и след модела. Ако сте запознати с DOS съвпадение на шаблони, това е еквивалентът на * заместващ символ в този синтаксис.
  • The _ заместващият знак съвпада точно с един знак от всякакъв тип. Това е еквивалентът на ? заместващ знак в съответствие с DOS модел.
  • Посочете списък с символи, като ги оградите в квадратни скоби. Например заместващия знак [aeiou] съвпада с която и да е гласна.
  • Посочете диапазон от символи, като заградите диапазона в квадратни скоби. Например заместващия знак [a-m] съответства на всяка буква в първата половина на азбуката.
  • Отричайте диапазон от символи, като включвате каратния знак непосредствено вътре в отварящата квадратна скоба. Например, [^ aeiou] съответства на всеки негласен знак, докато [^ a-m] съответства на всеки символ, който не е в първата половина на азбуката.

Комбиниране на заместващи символи за сложни модели

Комбинирайте тези заместващи символи в сложни модели, за да изпълнявате по-разширени заявки. Да предположим например, че трябва да съставите списък на всички ваши служители, които имат имена, които започват с буква от първата половина на азбуката, но го правят не завършва с гласна. Можете да използвате следната заявка:

ИЗБЕРЕТЕ *
ОТ служители
WHERE фамилно име КАТО '[a-m]% [^ aeiou]'

По същия начин можете да съставите списък на всички служители с фамилни имена, състоящ се от точно четири знака, като използвате четири екземпляра на _ модел:

ИЗБЕРЕТЕ *
ОТ служители
КЪДЕ фамилно име КАТО '____'

Както можете да кажете, използването на възможности за съвпадение на шаблони на SQL предлага на потребителите на база данни възможността да надхвърлят прости текстови заявки и да извършват разширени операции за търсене.