Какво е логически оператор :
Логическият оператор LIKE се използва, когато искаме да върнем реда, ако операндът съвпада с шаблон. Оператор Like връща TRUE, ако операндът съвпада с шаблон.Понякога трябва да извършим съвпадение на шаблон вместо равно или неравно. Like се използва, когато искаме да върнем реда, ако конкретен символен низ съответства на определен модел. Шаблонът може да бъде комбинация от обикновени знаци и заместващи знаци.
За да върнете реда назад, редовните знаци трябва точно да съвпадат със знаците, посочени в низа от знаци. Заместващите знаци могат да бъдат съпоставени с произволни части от низа от знаци.
Нека да създадем таблица dbo.Customer и след това да създадем няколко примера в реално време
Create table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2)) GO insert into dbo.Customer Values ( 1,'Raza','M','PK'), (2,'Rita','John','US'), (3,'Sukhi','Singh',Null), (4,'James','Smith','CA'), (5,'Robert','Ladson','US'), (6,'Alice','John','US'), (7,'Raza','M','US'),
(8,'Dita','M','US'),(9,'Adita','M','US')
1) Използване на %
Да кажем, че искаме да намерим всички редове, в които FName съдържа "i". Можем да използваме по-долу заявка
Select * From dbo.Customer where FName like '%i%'
Как да използвате % с Like Operator в SQL Server - SQL Server / TSQL урок |
Забелязано е, че като използваме % преди и след "i", ние казваме на заявката да намери всички редове, в които FName има символ "i" и няма значение какви други знаци са преди и след "i".
2) Използване на _ (долно черти)
Подчертаването може да се използва, когато искаме да проверим един знак, който може да бъде всякакъв, и да предоставим останалите знаци за нашето съвпадение. Да кажем, че ако искам да намеря всички редове, където първият символ на FName може да бъде всичко, но останалите трябва да бъдат "ita". Мога да използвам заявката по-долу.
Select * From dbo.Customer where FName like '_ita'
Как да използвате долно черта ( _ ) с Like Operator в SQL Server - SQL Server / TSQL урок |
3) Използване на [ ] – Всеки единичен знак в рамките на посочения ранг [a-t] или задайте [abc]
Like оператор с [ ] може да се използва, когато искаме да имаме диапазон. Да речем, ако искам да намеря всички редове, където първият символ на FName започва с [a-f]. Можем да използваме заявката по-долу.
Select * From dbo.Customer where FName like '[a-f]%'
Как да използвате оператор Rang с Like в SQL Server за търсене - SQL Server / TSQL урок |
Както можете да видите, използвах [a-f]%. Това означава, че искам първия знак от a до f и след това всички знаци са добре, тъй като използвах %.
4) [^] Всеки единичен знак НЕ в рамките на посочения ранг [a-t] или задайте [abc]
Да кажем, че искам да намеря всички редове, където FName първият символ НЕ започва с [a до f]. Можем да използваме заявката по-долу.
Изберете * От dbo.Customer
where FName like '[^a-f]%'
Как да използвате Not in Range с Like Operator в SQL Server - SQL Server / TSQL урок |
Забелязахме, че ни върна само редовете, които не започват с нито един знак от a-f.
Да кажем, че ако искаме да получим всички редове, където FName не започнете с a,d,j. можем да използваме заявката по-долу.
Изберете * От dbo.Customer
where FName like '[^adj]%'
Видео демонстрация:Как да използвате логически подобен оператор в SQL Server