Pattern Matching v dotazech SQL

Použití zástupných znaků pro nekompatibilní

Přiřazení vzorků SQL umožňuje vyhledávat vzory v datech, pokud neznáte přesné slovo nebo frázi, kterou hledáte. Tento typ dotazu SQL používá zástupné znaky, které odpovídají vzoru, spíše než přesně specifikovat. Například můžete použít zástupný znak "C%", který odpovídá libovolnému řetězci začínajícímu kapitálem C.

Použití operátora LIKE

Chcete-li použít zástupný výraz v dotazu SQL, použijte operátor LIKE v klauzuli WHERE a uzavřete vzorek v jednoduchých uvozovkách.

Použití karty% Wildcard k provedení jednoduchého vyhledávání

Chcete-li vyhledat libovolného zaměstnance v databázi s příjmením začínajícím písmenem C, použijte následující příkaz Transact-SQL:

SELECT * FROM zaměstnanců WHERE last_name LIKE 'C%'

Vynechání vzorů pomocí klíčového slova NOT

Použijte klíčové slovo NOT pro výběr záznamů, které neodpovídají vzoru. Například tento dotaz vrátí všechny záznamy, jejichž poslední jméno nezačíná C:

SELECT * FROM zaměstnanci KDY poslední jméno_jméno NOT LIKE 'C%'

Přizpůsobení vzoru všude pomocí% zástupných znaků dvakrát

Použijte dvě instance zástupné karty, aby odpovídaly určitému vzoru kdekoli. Tento příklad vrátí všechny záznamy obsahující C kdekoli v příjmení:

SELECT * FROM zaměstnanců WHERE last_name LIKE '% C%'

Hledání shody vzorů na konkrétní pozici

Použijte zástupný znak _ pro návrat dat na určité místo. Tento příklad se shoduje pouze tehdy, pokud se C vyskytuje ve třetí pozici sloupce posledního názvu:

SELECT * FROM zaměstnanců WHERE last_name LIKE '_ _C%'

Podporované zástupné výrazy v Transact SQL

Existuje několik výrazů zástupných znaků, které Transact SQL podporuje:

Kombinace zástupných znaků pro komplexní vzory

Kombinujte tyto zástupné znaky v složitých vzorech, abyste mohli provádět pokročilejší dotazy. Předpokládejme například, že potřebujete sestavit seznam všech vašich zaměstnanců, kteří mají jména, která začínají písmenem z první poloviny abecedy, ale nekončí samohláskou. Mohli byste použít následující dotaz:

SELECT * FROM zaměstnanců WHERE last_name LIKE '[am]% [^ aeiou]'

Stejně tak můžete sestavit seznam všech zaměstnanců s příjmení skládajících se přesně ze čtyř znaků pomocí čtyř instancí vzoru _ :

SELECT * FROM zaměstnanců WHERE last_name LIKE '____'

Jak můžete říci, použití schopností přizpůsobení vzorků SQL nabízí uživatelům databáze možnost jít nad rámec jednoduchých textových dotazů a provádět pokročilé operace vyhledávání.