Shoda vzorů SQL vám umožňuje vyhledávat vzory v datech, pokud neznáte přesné slovo nebo frázi, kterou hledáte. Tento druh SQL dotaz používá zástupné znaky, aby odpovídaly vzoru, místo aby jej přesně specifikoval. Například můžete použít zástupný znak „C%“ k přiřazení libovolného řetězce začínajícího velkým C.
Pomocí operátora LIKE
Chcete-li v dotazu SQL použít zástupný výraz, použijte operátor LIKE v klauzuli WHERE a uzavřete vzor do jednoduchých uvozovek.
Použití zástupného znaku% k provedení jednoduchého vyhledávání
Chcete-li vyhledat libovolného zaměstnance ve vaší databázi s příjmením začínajícím písmenem C, použijte následující příkaz Transact-SQL:
VYBRAT *
OD zaměstnanců
WHERE last_name LIKE 'C%'
Vynechání vzorů pomocí klíčového slova NOT
Pomocí klíčového slova NOT vyberte záznamy, které neodpovídají vzoru. Například tento dotaz vrací všechny záznamy, jejichž poslední jméno dělá ne začít s C:
VYBRAT *
OD zaměstnanců
WHERE last_name NENÍ RÁD „C%“
Přiřazení vzoru kdekoli pomocí% zástupných znaků dvakrát
Použijte dvě instance % zástupný znak, který odpovídá určitému vzoru kdekoli. Tento příklad vrátí všechny záznamy, které obsahují C kdekoli v příjmení:
VYBRAT *
OD zaměstnanců
WHERE last_name LIKE '% C%'
Nalezení shody vzoru na konkrétní pozici
Použijte _ zástupný znak pro vrácení dat na určitém místě. Tento příklad odpovídá pouze v případě, že C se vyskytuje na třetí pozici ve sloupci příjmení:
VYBRAT *
OD zaměstnanců
KDE příjmení jako '_ _C%'
Podporované výrazy se zástupnými znaky v Transact SQL
Transact SQL podporuje několik zástupných výrazů:
- The % zástupný znak odpovídá nule nebo více znakům jakéhokoli typu a lze jej použít k definování zástupných znaků před i po vzoru. Pokud jste obeznámeni s porovnáváním vzorů DOS, je to ekvivalent * zástupného znaku v této syntaxi.
- The _ zástupný znak odpovídá přesně jednomu znaku jakéhokoli typu. Je to ekvivalent ? zástupný znak při porovnávání vzorů DOS.
- Určete seznam znaků uzavřením do hranatých závorek. Například zástupný znak [aeiou] odpovídá jakékoli samohlásky.
- Určete rozsah znaků uzavřením rozsahu do hranatých závorek. Například zástupný znak [dopoledne] odpovídá libovolnému písmenu v první polovině abecedy.
- Negujte řadu znaků zahrnutím karátového znaku bezprostředně do úvodní hranaté závorky. Například, [^ aeiou] odpovídá libovolnému znaku bez samohlásky, zatímco [^ a-m] odpovídá libovolnému znaku, který není v první polovině abecedy.
Kombinace zástupných znaků pro složité vzory
Zkombinujte tyto zástupné znaky ve složitých vzorech a proveďte pokročilejší dotazy. Předpokládejme například, že musíte vytvořit seznam všech svých zaměstnanců, kteří mají jména, která začínají písmenem z první poloviny abecedy, ale ne končit samohláskou. Můžete použít následující dotaz:
VYBRAT *
OD zaměstnanců
WHERE last_name LIKE '[a-m]% [^ aeiou]'
Podobně můžete vytvořit seznam všech zaměstnanců s příjmením skládající se přesně ze čtyř znaků pomocí čtyř instancí _ vzor:
VYBRAT *
OD zaměstnanců
KDE příjmení jako '____'
Jak můžete říct, použití funkcí porovnávání vzorů 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é vyhledávací operace.