Zhoda vzorov v dotazoch SQL so zástupnými znakmi

click fraud protection

Porovnávanie vzorov SQL vám umožňuje vyhľadávať vzory v dátach, ak nepoznáte presné slovo alebo frázu, ktorú hľadáte. Tento druh SQL dopyt používa na priradenie vzoru zástupné znaky, a nie presnú špecifikáciu. Napríklad môžete použiť zástupný znak „C%“ na priradenie ľubovoľného reťazca začínajúceho na veľké C.

Zväčšovacie sklo
Kate Ter Haar / Flickr / CC do 2.0

Pomocou operátora LIKE

Ak chcete v dotaze SQL použiť zástupný výraz, použite operátor LIKE v klauzule WHERE a vložte vzor do jednoduchých úvodzoviek.

Použitie zástupného znaku% na jednoduché vyhľadávanie

Ak chcete vyhľadať ktoréhokoľvek zamestnanca vo vašej databáze s priezviskom začínajúcim sa písmenom C, použite nasledujúci príkaz Transact-SQL:

VYBERTE *
ZO zamestnancov
KDE priezvisko LIKE „C%“

Vynechanie vzorov pomocou kľúčového slova NOT

Pomocou kľúčového slova NOT vyberte záznamy, ktoré sa nezhodujú so vzorom. Napríklad tento dotaz vráti všetky záznamy, ktorých meno je posledné nie začať s C:

VYBERTE *
ZO zamestnancov
KDE priezvisko NEMÁ RÁD „C%“
instagram viewer

Priradenie vzoru kdekoľvek pomocou zástupných znakov% dvakrát

Použite dva výskyty súboru % zástupný znak, aby sa kdekoľvek zhodoval s konkrétnym vzorom. Tento príklad vráti všetky záznamy, ktoré obsahujú C kdekoľvek v priezvisku:

VYBERTE *
ZO zamestnancov
KDE priezvisko LIKE „% C%“

Nájdenie zhody vzoru na konkrétnej pozícii

Použi _ zástupný znak, ak chcete vrátiť údaje na konkrétnom mieste. Tento príklad sa zhoduje, iba ak sa C vyskytuje na tretej pozícii stĺpca priezviska:

VYBERTE *
ZO zamestnancov
KDE priezvisko LIKE „_ _C%“

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

Transact SQL podporuje niekoľko výrazov zástupných znakov:

  • The % zástupný znak zodpovedá nule alebo viacerým znakom ľubovoľného typu a je možné ich použiť na definovanie zástupných znakov pred aj za vzorom. Ak poznáte porovnávanie vzorov v systéme DOS, je to ekvivalent * zástupného znaku v tejto syntaxi.
  • The _ zástupný znak sa zhoduje presne s jedným znakom ľubovoľného typu. Je to ekvivalent ? zástupný znak v zhode vzorov DOS.
  • Zadajte zoznam znakov tak, že ich zatvoríte do hranatých zátvoriek. Napríklad zástupný znak [aeiou] sa zhoduje s akoukoľvek samohláskou.
  • Zadajte rozsah znakov tak, že ho uzavriete do hranatých zátvoriek. Napríklad zástupný znak [a-m] sa zhoduje s ľubovoľným písmenom v prvej polovici abecedy.
  • Vylúčte rozsah znakov zahrnutím karátového znaku priamo do úvodnej hranatej zátvorky. Napríklad, [^ aeiou] sa zhoduje s ľubovoľným znakom, ktorý nemá samohlásku [^ a-m] sa zhoduje s ľubovoľným znakom, ktorý nie je v prvej polovici abecedy.

Kombinácia zástupných znakov pre zložité vzory

Skombinujte tieto zástupné znaky do zložitých vzorov, aby ste mohli vykonávať pokročilejšie dotazy. Predpokladajme napríklad, že musíte vytvoriť zoznam všetkých svojich zamestnancov, ktorí majú mená, ktoré sa začínajú písmenom z prvej polovice abecedy, ale majú nie zakončiť samohláskou. Môžete použiť nasledujúci dotaz:

VYBERTE *
ZO zamestnancov
KDE priezvisko AKO '[a-m]% [^ aeiou]'

Podobne môžete zostaviť zoznam všetkých zamestnancov s priezviskami pozostávajúci z presne štyroch znakov pomocou štyroch inštancií _ vzor:

VYBERTE *
ZO zamestnancov
KDE priezvisko LIKE „____“

Ako môžete povedať, použitie schopností porovnávania vzorov SQL ponúka používateľom databázy možnosť prekročiť rámec jednoduchých textových dotazov a vykonávať pokročilé vyhľadávacie operácie.

instagram story viewer