Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Kombinace jednoho nebo více predikátů, které používají logické operátory AND, ORa NOT.
Syntax
Syntaxe pro SQL Server, Azure SQL Database a Spravovanou instanci Azure SQL
<search_condition> ::=
MATCH (<graph_search_pattern>) | <search_condition_without_match> | <search_condition> AND <search_condition>
<search_condition_without_match> ::=
{ [ NOT ] <predicate> | ( <search_condition_without_match> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition_without_match> ) } ]
[ ...n ]
<predicate> ::=
{ expression { = | <> | != | > | >= | !> | < | <= | !< } expression
| string_expression [ NOT ] LIKE string_expression
[ ESCAPE 'escape_character' ]
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
| expression IS [ NOT ] DISTINCT FROM
| CONTAINS
( { column | * } , '<contains_search_condition>' )
| FREETEXT ( { column | * } , 'freetext_string' )
| expression [ NOT ] IN ( subquery | expression [ , ...n ] )
| expression { = | < > | != | > | >= | ! > | < | <= | ! < }
{ ALL | SOME | ANY } ( subquery )
| EXISTS ( subquery ) }
<graph_search_pattern> ::=
{ <node_alias> {
{ <-( <edge_alias> )- }
| { -( <edge_alias> )-> }
<node_alias>
}
}
<node_alias> ::=
node_table_name | node_table_alias
<edge_alias> ::=
edge_table_name | edge_table_alias
Syntaxe pro Azure Synapse Analytics a paralelní datový sklad
< search_condition > ::=
{ [ NOT ] <predicate> | ( <search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
[ ...n ]
<predicate> ::=
{ expression { = | <> | != | > | >= | < | <= } expression
| string_expression [ NOT ] LIKE string_expression
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
| expression [ NOT ] IN (subquery | expression [ , ...n ] )
| expression [ NOT ] EXISTS (subquery)
}
Arguments
<search_condition>
Určuje podmínky pro řádky vrácené v sadě výsledků pro SELECT příkaz, výraz dotazu nebo poddotaz.
UPDATE U příkazu určuje řádky, které se mají aktualizovat.
DELETE Pro příkaz určuje řádky, které se mají odstranit. Počet predikátů, které lze zahrnout do podmínky hledání příkazů Transact-SQL, není nijak omezený.
<graph_search_pattern>
Určuje vzor shody grafu. Další informace o argumentech této klauzule naleznete v tématu POZVYHLEDAT
NOT
Neguje logický výraz určený predikátem. Další informace naleznete v tématu NE.
AND
Kombinuje dvě podmínky a vyhodnocuje se TRUE , když jsou TRUEobě podmínky . Další informace najdete v tématu AND.
OR
Kombinuje dvě podmínky a vyhodnocuje se TRUE , pokud je TRUEobě podmínky . Další informace najdete v tématu NEBO.
<predicate>
Výraz, který vrací TRUE, FALSEnebo UNKNOWN. Další informace naleznete v tématu Predikáty.
expression
Určuje název sloupce, konstantu, funkci, proměnnou, skalární poddotaz nebo libovolnou kombinaci názvů sloupců, konstant a funkcí spojených operátorem nebo operátory nebo poddotazem. Výraz může také obsahovat CASE výraz.
Řetězcové konstanty a proměnné jiné než Unicode používají znakovou stránku, která odpovídá výchozí kolaci databáze. Převody znakových stránek můžou nastat, když pracujete pouze s daty jiných znaků než Unicode a odkazují na znakové typy znaků jiné než Unicode, varchar a text. SQL Server převede řetězcové konstanty a proměnné jiné než Unicode na znakovou stránku, která odpovídá kolaci odkazovaného sloupce nebo zadané pomocí COLLATE, pokud se tato znaková stránka liší od znakové stránky, která odpovídá výchozí kolaci databáze. Všechny znaky, které nebyly nalezeny na nové znakové stránce, jsou přeloženy na podobný znak, pokud lze najít mapování nejvhodnější nebo jinak jsou převedeny na výchozí náhradní znak ?.
Při práci s více znakovými stránkami mohou být znakové konstanty předpony velkým písmenem Na proměnné Unicode lze použít, aby se zabránilo převodům znakových stránek.
= operátor
Operátor použitý k otestování rovnosti mezi dvěma výrazy.
<> operátor
Operátor použitý k otestování podmínky dvou výrazů, které se navzájem nerovnají.
!= operátor
Operátor použitý k otestování podmínky dvou výrazů, které se navzájem nerovnají.
> operátor
Operátor použitý k otestování podmínky jednoho výrazu, který je větší než druhý.
>= operátor
Operátor použitý k otestování podmínky jednoho výrazu, který je větší nebo roven druhému výrazu.
!> operátor
Operátor použitý k otestování podmínky jednoho výrazu není větší než druhý výraz.
< operátor
Operátor použitý k otestování podmínky jednoho výrazu je menší než druhý.
<= operátor
Operátor použitý k otestování podmínky jednoho výrazu je menší nebo roven druhému výrazu.
!< operátor
Operátor použitý k otestování podmínky jednoho výrazu není menší než druhý výraz.
string_expression
Řetězec znaků a zástupných znaků.
[ NE ] JAKO
Označuje, že následující řetězec znaku se má použít s porovnávání vzorů. Další informace najdete v tématu LIKE.
ESCAPE znak escape_
Umožňuje vyhledávání zástupných znaků v řetězci znaků místo toho, aby fungovalo jako zástupný znak. escape_character je znak, který je vložen před zástupný znak označující toto zvláštní použití.
[ NE ] MEZI
Určuje inkluzivní rozsah hodnot. Slouží AND k oddělení počátečních a koncových hodnot. Další informace naleznete v tématu BETWEEN.
JE [ NENÍ ] NULL
Určuje hledání hodnot null nebo hodnoty, které nejsou null v závislosti na použitých klíčových slovech. Výraz s bitovým nebo aritmetickým operátorem se vyhodnotí, NULL jestli je NULLněkterý z operandů .
JE [ NENÍ ] ODLIŠNÝ OD
Porovná rovnost dvou výrazů a zaručuje pravdivý nebo nepravdivý výsledek, i když jeden nebo oba operandy jsou NULL. Další informace naleznete v tématu IS [NOT] DISTINCT FROM (Transact-SQL).
CONTAINS
Vyhledá sloupce, které obsahují data založená na znakech, aby byly přesné nebo méně přesné (přibližné) shody s jedním slovem a frázemi, blízkosti slov v určité vzdálenosti od sebe a vážené shody. Tuto možnost lze použít pouze s SELECT příkazy. Další informace naleznete v tématu CONTAINS.
FREETEXT
Poskytuje jednoduchou formu dotazu v přirozeném jazyce vyhledáváním sloupců obsahujících data založená na znakech pro hodnoty, které odpovídají významu místo přesných slov v predikátu. Tuto možnost lze použít pouze s SELECT příkazy. Další informace naleznete v tématu FREETEXT.
[ NE ] V
Určuje hledání výrazu na základě toho, jestli je výraz součástí nebo vyloučen ze seznamu. Hledaný výraz může být konstanta nebo název sloupce a seznam může být sada konstant nebo obvykle poddotaz. Uzavřete seznam hodnot do závorek. Další informace najdete v tématu IN.
subquery
Lze považovat za omezený SELECT příkaz a je podobný <query_expression> v SELECT příkazu. Klauzule ORDER BY a INTO klíčové slovo nejsou povoleny. Další informace najdete v tématu SELECT.
ALL
Používá se s relačním operátorem a poddotazem. Vrátí TRUE hodnotu, <predicate> pokud všechny hodnoty načtené pro poddotaz splňují operaci porovnání, nebo FALSE pokud ne všechny hodnoty splňují porovnání nebo když poddotaz nevrátí žádné řádky do vnějšího příkazu. Další informace najdete v tématu VŠE.
{ NĚKTERÉ | JAKÝKOLI }
Používá se s relačním operátorem a poddotazem. Vrátí TRUE hodnotu pro <predicate> případ, že jakákoli hodnota načtená pro poddotaz splňuje operaci porovnání, nebo FALSE pokud žádné hodnoty v poddotazu splňují porovnání nebo když poddotaz vrátí žádné řádky do vnějšího příkazu. V opačném případě je UNKNOWNvýraz . Další informace naleznete v tématu SOME | ANY.
EXISTS
Používá se s poddotazem k otestování existence řádků vrácených poddotazem. Další informace naleznete v tématu EXISTS.
Remarks
Pořadí priorit logických operátorů je NOT (nejvyšší), následované AND, následované OR. Závorky lze použít k přepsání této priority ve hledané podmínce. Pořadí vyhodnocení logických operátorů se může lišit v závislosti na volbách provedených optimalizátorem dotazů. Další informace o tom, jak logické operátory pracují s hodnotami logiky, naleznete v tématu AND, OR a NOT.
Examples
Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .
A. Použití WHERE se syntaxí LIKE a ESCAPE
Následující příklad vyhledá řádky, ve kterých LargePhotoFileName má sloupec znaky green_, a používá ESCAPE možnost, protože _ je zástupný znak. Pokud tuto možnost nezadáte ESCAPE , dotaz vyhledá všechny hodnoty popisu, které obsahují slovo green následované libovolným jiným znakem, než _ je znak.
USE AdventureWorks2022;
GO
SELECT *
FROM Production.ProductPhoto
WHERE LargePhotoFileName LIKE '%greena_%' ESCAPE 'a';
B. Použití syntaxe WHERE a LIKE s daty Unicode
Následující příklad používá WHERE klauzuli k načtení poštovní adresy pro jakoukoli společnost, která je mimo Spojené státy (US) a ve městě, jehož jméno začíná Pa.
USE AdventureWorks2022;
GO
SELECT AddressLine1,
AddressLine2,
City,
PostalCode,
CountryRegionCode
FROM Person.Address AS a
INNER JOIN Person.StateProvince AS s
ON a.StateProvinceID = s.StateProvinceID
WHERE CountryRegionCode NOT IN ('US')
AND City LIKE N'Pa%';
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
C. Použití where s like
Následující příklad vyhledá řádky, ve kterých LastName sloupec obsahuje znaky and.
-- Uses AdventureWorks
SELECT EmployeeKey,
LastName
FROM DimEmployee
WHERE LastName LIKE '%and%';
D. Použití syntaxe WHERE a LIKE s daty Unicode
Následující příklad používá klauzuli WHERE k provedení vyhledávání Unicode ve sloupci LastName .
-- Uses AdventureWorks
SELECT EmployeeKey,
LastName
FROM DimEmployee
WHERE LastName LIKE N'%and%';