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:
- Zástupná hodnota % odpovídá nula nebo více znaků libovolného typu a může být použita k definování zástupných znaků před a po vzoru. Pokud jste obeznámeni s přizpůsobením vzoru DOS, je to ekvivalent zástupného znaku v této syntaxi.
- Zástupná karta _ odpovídá přesně jednomu znaku libovolného typu. Je to ekvivalent ? zástupný znak v přizpůsobení vzoru DOS.
- Určete seznam znaků vložením do hranatých závorek. Například zástupný znak [aeiou] odpovídá jakékoliv samohlásku.
- Určete rozsah znaků vložením rozsahu do hranatých závorek. Například zástupný znak [am] odpovídá libovolnému písmenu v první polovině abecedy.
- Zabraňte řadě znaků tím, že znak karátů se bude nacházet ihned uvnitř otevřené hranaté konzoly. Například, [^ aeiou] odpovídá jakémukoli znaku bez samohlásky, zatímco [^ am] odpovídá libovolnému znaku, který není v první polovině abecedy.
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í.