Gebruik Wildcards vir Inexact Matching
Met SQL-patroon ooreenstem kan jy soek na patrone in data, as jy nie die presiese woord of frase ken wat jy soek nie. Hierdie soort SQL-navraag gebruik wildcardkarakters om 'n patroon te pas, eerder as om dit presies te spesifiseer. Byvoorbeeld, jy kan die wildkaart "C%" gebruik om enige string wat met 'n hoofstad C begin, te pas.
Gebruik die LIKE Operateur
Om 'n wildcard-uitdrukking in 'n SQL-navraag te gebruik, gebruik die LIKE-operateur in 'n WHERE-klousule en sluit die patroon binne enkele aanhalingstekens.
Gebruik die% Wildcard om 'n eenvoudige soektog uit te voer
Om te soek na enige werknemer in u databasis met 'n familienaam wat begin met die letter C, gebruik die volgende Transact-SQL-stelling:
SELECT * VAN werknemers WAAR laaste naam LIKE 'C%'Patrone verlaat Gebruik die NOT-sleutelwoord
Gebruik die NOT-sleutelwoord om rekords te kies wat nie ooreenstem met die patroon nie. Byvoorbeeld, hierdie navraag gee alle rekords wie se naam laas nie met C begin nie:
SELECT * VAN werknemers WAAR laaste naam NIE LIKE 'C%'Pas 'n patroon by die gebruik van die% Wildcard Twice
Gebruik twee gevalle van die % wildcard om enige plek by 'n bepaalde patroon te pas. In hierdie voorbeeld word alle rekords wat 'n C bevat, in enige van die voorname:
SELECT * VAN werknemers WAAR laaste naam LIKE '% C%'Vind 'n patroon pas by 'n spesifieke posisie
Gebruik die _ wildcard om data op 'n spesifieke plek terug te keer. Hierdie voorbeeld pas slegs by indien C plaasvind in die derde posisie van die kolom van die voornaam:
SELECT * VAN werknemers WAAR laaste naam LIKE '_ _C%'Ondersteunde Wildcard-uitdrukkings in Transact SQL
Daar is verskeie wildcard-uitdrukkings wat deur Transact SQL ondersteun word:
- Die % wildcard pas op nul of meer karakters van enige tipe, en kan gebruik word om wildkaarte voor en na die patroon te definieer. As jy bekend is met DOS-patroon ooreenstem, is dit die ekwivalent van die * wildcard in daardie sintaksis.
- Die _ wildcard pas presies een karakter van enige tipe aan. Dit is die ekwivalent van die ? wildcard in DOS patroon ooreenstem.
- Gee 'n lys karakters aan deur dit in vierkantige hakies te omhul. Byvoorbeeld, die wildkaart [aeiou] pas enige klinker aan.
- Gee 'n verskeidenheid karakters aan deur die reeks in vierkantige hakies te omhul. Byvoorbeeld, die wildcard [am] pas enige letter in die eerste helfte van die alfabet.
- Negeer 'n verskeidenheid karakters deur die karat karakter onmiddellik binne in die opening vierkante hakie in te sluit. Byvoorbeeld, [^ aeiou] pas enige nie-klinker karakter terwyl [^ am] enige karakters pas wat nie in die eerste helfte van die alfabet is nie.
Kombinasie van wildkaarte vir komplekse patrone
Kombineer hierdie wildkaarte in komplekse patrone om gevorderde navrae uit te voer. Stel byvoorbeeld dat jy 'n lys moet opstel van al jou werknemers wat name het wat met 'n brief van die eerste helfte van die alfabet begin, maar nie met 'n klinker eindig nie. U kan die volgende navraag gebruik:
SELECT * VAN werknemers WAAR laaste naam LIKE '[am]% [^ aeiou]'Net so kan jy 'n lys opstel van alle werknemers met van name bestaande uit presies vier karakters deur vier gevalle van die _ patroon te gebruik:
SELECT * VAN werknemers WAAR laaste naam LIKE '____'Soos u kan vertel, bied die gebruik van SQL-patroon-ooreenstemmende vermoëns databasisgebruikers die vermoë om verder as eenvoudige teksnavrae te gaan en gevorderde soekoperasies uit te voer.