Relationale Datenbanken
Kurzbeschreibung SQL

Informatik Hartmut Härtl
Johann Penon

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
"K" oder "R" enthalten und beliebig enden.

… 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
(Äquivalent zu
WHERE NAME NOT LIKE '[A-H]%'

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'

escape.gif (1982 Byte)

Oder

Alle Namen suchen, welche ein "Underline" enthalten.

SELECT * FROM Kunden
WHERE Name LIKE '%#_%' ESCAPE '#'

 

zum Seitenanfang springen

zum Seitenanfang springen