Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Określa, czy określony znak String
pasuje do określonego wzorca.
Składnia
match [NOT] LIKE pattern [ESCAPE escape]
Argumenty
match
Wyrażenie Entity SQL, które oblicza wartość .String
pattern
Wzorzec zgodny z określonym String
elementem .
escape
Znak ucieczki.
NOT Określa, że wynik LIKE ma być negowany.
Wartość zwracana
true
string
jeśli element jest zgodny ze wzorcem; w przeciwnym razie false
.
Uwagi
Wyrażenia Języka SQL jednostki korzystające z operatora LIKE są obliczane w taki sam sposób, jak wyrażenia używające równości co kryteria filtrowania. Jednak wyrażenia Entity SQL używające operatora LIKE mogą zawierać zarówno literały, jak i symbole wieloznaczne.
W poniższej tabeli opisano składnię wzorca string
.
Symbol wieloznaczny | opis | Przykład |
---|---|---|
% | Dowolny string z zero lub więcej znaków. |
title like '%computer%' znajduje wszystkie tytuły ze słowem "computer" w dowolnym miejscu w tytule. |
_ (podkreślenie) | Dowolny pojedynczy znak. | firstname like '_ean' znajduje wszystkie czteroliterowe imiona, które kończą się na "ean ", takich jak Dean lub Sean. |
[ ] | Dowolny pojedynczy znak w określonym zakresie ([a-f]) lub ustawiony ([abcdef]). | lastname like '[C-P]arsen' znajduje nazwiska kończące się "arsenem" i zaczyna się od dowolnego pojedynczego znaku między C i P, takich jak Carsen lub Larsen. |
[^] | Każdy pojedynczy znak nie mieści się w określonym zakresie ([^a-f]) lub ustawiony ([^abcdef]). | lastname like 'de[^l]%' znajduje wszystkie nazwiska, które zaczynają się od "de" i nie zawierają "l" jako następującej litery. |
Uwaga
Nie można zastosować operatora ENTITY SQL LIKE i klauzuli ESCAPE do System.DateTime
wartości.System.Guid
Aplikacja LIKE obsługuje dopasowywanie wzorców ASCII i dopasowywanie wzorca Unicode. Gdy wszystkie parametry są znakami ASCII, jest wykonywane dopasowywanie wzorca ASCII. Jeśli co najmniej jeden argument to Unicode, wszystkie argumenty są konwertowane na format Unicode, a dopasowywanie wzorca Unicode jest wykonywane. W przypadku używania formatu Unicode z funkcją LIKE końcowe wartości puste są znaczące; jednak w przypadku wartości innych niż Unicode końcowe wartości puste nie są istotne. Składnia ciągu wzorca języka Entity SQL jest taka sama jak składnia języka Transact-SQL.
Wzorzec może zawierać zwykłe znaki i symbole wieloznaczne. Podczas dopasowywania wzorca zwykłe znaki muszą dokładnie odpowiadać znakom określonym w znaku string
. Symbole wieloznaczne mogą być jednak dopasowywane do dowolnych fragmentów ciągu znaków. Gdy jest używany z symbolami wieloznacznymi, operator LIKE jest bardziej elastyczny niż operator porównania = i != ciągów.
Uwaga
Jeśli dotyczysz określonego dostawcy, możesz użyć rozszerzeń specyficznych dla dostawcy. Jednak takie konstrukcje mogą być traktowane inaczej przez innych dostawców, na przykład. Serwer SqlServer obsługuje wzorce [first-last] i [^first-last], w których były dopasowywuje dokładnie jeden znak między pierwszym i ostatnim, a drugi pasuje dokładnie do jednego znaku, który nie występuje między pierwszym i ostatnim.
Escape
Korzystając z klauzuli ESCAPE, można wyszukać ciągi znaków, które zawierają co najmniej jeden znak wieloznaczny opisany w tabeli w poprzedniej sekcji. Załóżmy na przykład, że kilka dokumentów zawiera literał "100%" w tytule i chcesz wyszukać wszystkie te dokumenty. Ponieważ znak procentu (%) jest symbolem wieloznacznymi, należy go użyć klauzuli ENTITY SQL ESCAPE, aby pomyślnie wykonać wyszukiwanie. Poniżej przedstawiono przykład tego filtru.
"title like '%100!%%' escape '!'"
W tym wyrażeniu wyszukiwania znak wieloznaczny (%) bezpośrednio po znaku wykrzyknika (!) jest traktowany jako literał, a nie jako znak wieloznaczny. Można użyć dowolnego znaku jako znaku ucieczki z wyjątkiem symboli wieloznacznych Entity SQL i kwadratowych znaków ([ ]
). W poprzednim przykładzie znak wykrzyknika (!) jest znakiem ucieczki.
Przykład
Następujące dwa zapytania Entity SQL używają operatorów LIKE i ESCAPE, aby określić, czy określony ciąg znaków jest zgodny z określonym wzorcem. Pierwsze zapytanie wyszukuje Name
znaki rozpoczynające się od znaków Down_
. To zapytanie używa opcji ESCAPE, ponieważ podkreślenie (_
) jest symbolem wieloznacznymi. Bez określenia opcji ESCAPE zapytanie wyszukuje wszystkie Name
wartości rozpoczynające się od wyrazu Down
, po którym następuje dowolny pojedynczy znak inny niż znak podkreślenia. Zapytania są oparte na modelu AdventureWorks Sales Model. Aby skompilować i uruchomić to zapytanie, wykonaj następujące kroki:
Postępuj zgodnie z procedurą w temacie Instrukcje: Wykonywanie zapytania zwracającego wyniki Typ pierwotny.
Przekaż następujące zapytanie jako argument do
ExecutePrimitiveTypeQuery
metody :
-- LIKE and ESCAPE
-- If an AdventureWorksEntities.Products contained a Name
-- with the value 'Down_Tube', the following query would find that
-- value.
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'DownA_%' ESCAPE 'A'
-- LIKE
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'BB%'