Jokerzeichen (Pattern Matching)
Sogenannte Matchcodes, auch Jokerzeichen oder Wildcards genannt, können nur für Texte (Datentypen var und varchar) verwendet werden!
Matchcodes können zu beliebigen sinnvollen Mustern kombiniert werden!
| Matchcode | steht für | Beispiel | Ergebnis |
|---|---|---|---|
% |
beliebige Folge von Zeichen wozu auch NULL gehört. |
WHERE Name
LIKE 'B%' LIKE '%er' LIKE 'B%mann' LIKE '%x%' |
Alle Namen, die
… mit "B" beginnen … mit "er" enden … die mit "B" beginnen und mit "mann" enden. Alle Namen die ein "x" enthalten. |
_ |
ein beliebiges einzelnesZeichen |
WHERE Name
LIKE '_al'LIKE 'S__'
LIKE 'Ma_er'
|
Alle dreistelligen Namen, die mit "al" enden.Alle dreistelligen Namen, die mit "S" beginnen. Alle, 5-stelligen Namen die mit "Ma" beginnen und mit "er" enden. |
[A-F] |
ein beliebiges einzelnes Zeichen innerhalb des angegebenen Bereichs bzw. der angegebenen Menge |
WHERE Name
LIKE '[A-H]% 'LIKE '[A-H]%ing' LIKE '_[KR]%'
LIKE '[A-FKRT]%' |
Alle Namen, die … "A" bis "H" beginnen … dto. und mit "ing" enden. … die an zweiter Stelle ein … die mit "A" bis "F", "K", "R" oder "T" beginnen. |
[^A-F] |
ein beliebiges einzelnes Zeichen außerhalb des angegebenen Bereiches |
WHERE Name
LIKE '[^A-H]%'
LIKE '_[^C]%' |
Alle Namen, die … nicht "A" bis "H" beginnen Alle, die an zweiter Stelle kein "C" haben. |
Anmerkung:
Wollen Sie z.B. in einer Tabelle Finanzen alle Einträge
der Spalte "Zinsart" suchen, welche ein
%-Zeichen enthalten, stehen Sie vor einem Problem. Sie können das Zeichen
% nicht verwenden, da es als Matchcode interpretiert wird.
Dieses kann über die sog. ESCAPE-Option wie folgt gelöst werden:
SELECT * FROM Finanzen
WHERE Zinsart LIKE '%X%-Satz%' ESCAPE 'X'

Oder
Alle Namen suchen, welche ein "Underline" enthalten.
SELECT * FROM Kunden
WHERE Name LIKE '%#_%' ESCAPE '#'