Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
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 (w programowaniu)
matchWyrażenie Entity SQL, które oblicza wartość .String
pattern Wzorzec zgodny z określonym Stringelementem .
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 / Notatka
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 / Notatka
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.
Ucieczka
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
ExecutePrimitiveTypeQuerymetody :
-- 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%'