Porovnávání vzorů v dotazech SQL se zástupnými znaky

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.

Zvětšovací sklo
Kate Ter Haar / Flickr / CC do 2.0

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%“
instagram viewer

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.

instagram story viewer