Met SQL-patroonovereenkomst kunt u naar patronen in gegevens zoeken als u het exacte woord of de exacte woordgroep niet weet. Dit soort SQL query gebruikt jokertekens om met een patroon overeen te komen, in plaats van het precies op te geven. U kunt bijvoorbeeld het jokerteken "C%" gebruiken om elke tekenreeks te matchen die begint met een hoofdletter C.
De LIKE-operator gebruiken
Als u een jokertekenuitdrukking in een SQL-query wilt gebruiken, gebruikt u de LIKE-operator in een WHERE-component en plaatst u het patroon tussen enkele aanhalingstekens.
Het % jokerteken gebruiken om een eenvoudige zoekopdracht uit te voeren
Gebruik de volgende Transact-SQL-instructie om te zoeken naar een werknemer in uw database met een achternaam die begint met de letter C:
KIES *
VAN medewerkers
WHERE achternaam LIKE 'C%'
Patronen weglaten met het trefwoord NOT NOT
Gebruik het trefwoord NOT om records te selecteren die niet overeenkomen met het patroon. Deze query retourneert bijvoorbeeld alle records waarvan de naam het laatst doet niet beginnen met C:
KIES *
VAN medewerkers
WHERE achternaam NIET LIKE 'C%'
Overal een patroon matchen met tweemaal het % jokerteken
Gebruik twee instanties van de % wildcard om overal met een bepaald patroon overeen te komen. Dit voorbeeld retourneert alle records die een C ergens in de achternaam bevatten:
KIES *
VAN medewerkers
WHERE achternaam LIKE '%C%'
Een patroonovereenkomst vinden op een specifieke positie
Gebruik de _ wildcard om gegevens op een specifieke locatie te retourneren. Dit voorbeeld komt alleen overeen als C voorkomt op de derde positie van de achternaamkolom:
KIES *
VAN medewerkers
WHERE achternaam LIKE '_ _C%'
Ondersteunde wildcard-expressies in Transact SQL
Er worden verschillende wildcard-expressies ondersteund door Transact SQL:
- De % jokertekens komen overeen met nul of meer tekens van elk type en kunnen worden gebruikt om zowel voor als na het patroon jokertekens te definiëren. Als u bekend bent met DOS-patroonovereenkomst, is dit het equivalent van het * jokerteken in die syntaxis.
- De _ wildcard komt overeen met precies één teken van elk type. Het is het equivalent van de ? wildcard in DOS-patroonovereenkomst.
- Geef een lijst met tekens op door ze tussen vierkante haken te plaatsen. Bijvoorbeeld het jokerteken [aeiou] past bij elke klinker.
- Geef een reeks tekens op door de reeks tussen vierkante haken te plaatsen. Bijvoorbeeld het jokerteken [a-m] komt overeen met elke letter in de eerste helft van het alfabet.
- Negeer een reeks tekens door het karaat-teken direct binnen de opening vierkante haakjes op te nemen. Bijvoorbeeld, [^aeiou] komt overeen met elk niet-klinkerteken terwijlvo [^a-m] komt overeen met elk teken dat niet in de eerste helft van het alfabet staat.
Jokertekens combineren voor complexe patronen
Combineer deze jokertekens in complexe patronen om geavanceerdere zoekopdrachten uit te voeren. Stel bijvoorbeeld dat u een lijst moet maken van al uw werknemers die namen hebben die beginnen met een letter uit de eerste helft van het alfabet, maar die niet eindigen met een klinker. Je zou de volgende query kunnen gebruiken:
KIES *
VAN medewerkers
WHERE achternaam LIKE '[a-m]%[^aeiou]'
Op dezelfde manier zou je een lijst kunnen maken van alle werknemers met achternaam die uit precies vier tekens bestaat door vier instanties van de. te gebruiken _ patroon:
KIES *
VAN medewerkers
WHERE achternaam LIKE '____'
Zoals u kunt zien, biedt het gebruik van mogelijkheden voor het matchen van SQL-patronen databasegebruikers de mogelijkheid om verder te gaan dan eenvoudige tekstquery's en geavanceerde zoekbewerkingen uit te voeren.