Zurück zu: SQL Tutorial
SQL Platzhalterzeichen
Ein Platzhalterzeichen wird verwendet, um ein oder mehrere Zeichen in einer Zeichenfolge zu ersetzen.
Platzhalterzeichen werden mit dem LIKE
Operator verwendet. Der LIKE
Operator wird in einer WHERE
Klausel verwendet, um in einer Spalte nach einem angegebenen Muster zu suchen.
Beispiel
Gibt alle Kunden zurück, die mit dem Buchstaben „a“ beginnen:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
Platzhalterzeichen
Symbol | Beschreibung |
---|---|
% | Stellt null oder mehr Zeichen dar |
_ | Stellt ein einzelnes Zeichen dar |
[] | Stellt ein beliebiges einzelnes Zeichen innerhalb der Klammern * dar |
^ | Steht für jedes Zeichen, das nicht in den Klammern * steht |
– | Stellt ein beliebiges einzelnes Zeichen innerhalb des angegebenen Bereichs dar * |
{} | Stellt jedes beliebige Escapezeichen dar ** |
Wird in PostgreSQL- und MySQL Datenbanken nicht unterstützt.
** Wird nur in Oracle Datenbanken unterstützt.
Demo Datenbank
Nachfolgend sehen Sie eine Auswahl aus der in den Beispielen verwendeten Kundentabelle:
KundenID | Kundenname | Kontaktname | Address | Stadt | Postleitzahl | Land |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Verwenden des % Platzhalters
Das %
Platzhalterzeichen steht für eine beliebige Anzahl von Zeichen, auch für null Zeichen.
Beispiel
Gibt alle Kunden zurück, die mit dem Muster „es“ enden:
SELECT * FROM Customers
WHERE CustomerName LIKE '%es';
Beispiel
Gibt alle Kunden zurück, die das Muster „mer“ enthalten:
SELECT * FROM Customers
WHERE CustomerName LIKE '%mer%';
Verwenden des Platzhalters _
Das Platzhalterzeichen _
steht für ein einzelnes Zeichen.
Es kann sich um ein beliebiges Zeichen oder eine beliebige Zahl handeln, aber jedes _
steht für genau ein Zeichen.
Beispiel
Gibt alle Kunden zurück, deren Stadt
mit einem beliebigen Buchstaben beginnt, gefolgt von „London“:
SELECT * FROM Customers
WHERE City LIKE '_ondon';
Beispiel
Gibt alle Kunden zurück, deren Stadt
mit „L“ beginnt, gefolgt von 3 beliebigen Zeichen und endend mit „on“:
SELECT * FROM Customers
WHERE City LIKE 'L___on';
Verwenden des Platzhalters []
Das Platzhalterzeichen []
gibt ein Ergebnis zurück, wenn eines der darin enthaltenen Zeichen übereinstimmt.
Beispiel
Gibt alle Kunden zurück, die mit „b“, „s“ oder „p“ beginnen:
SELECT * FROM Customers
WHERE CustomerName LIKE '[bsp]%';
Verwenden des Platzhalters –
Mit dem Platzhalterzeichen „-
“ können Sie einen Zeichenbereich innerhalb des Platzhalterzeichens „[]
“ angeben.
Beispiel
Gibt alle Kunden zurück, die mit „a“, „b“, „c“, „d“, „e“ oder „f“ beginnen:
SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';
Platzhalter kombinieren
Alle Platzhalterzeichen, beispielsweise %
und _
, können in Kombination mit anderen Platzhaltern verwendet werden.
Beispiel
Gibt alle Kunden zurück, die mit „a“ beginnen und mindestens 3 Zeichen lang sind:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
Beispiel
Gibt alle Kunden zurück, die an der zweiten Stelle ein „r“ haben:
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
Ohne Wildcard
Wenn kein Platzhalter angegeben ist, muss die Phrase eine exakte Übereinstimmung aufweisen, um ein Ergebnis zurückzugeben.
Beispiel
Rückgabe aller Kunden aus Spanien:
SELECT * FROM Customers
WHERE Country LIKE 'Spain';
Microsoft Access Platzhalter
Die Microsoft Access Datenbank verfügt über einige weitere Platzhalter:
Symbol | Beschreibung | Beispiel |
---|---|---|
* | Stellt null oder mehr Zeichen dar | bl* findet bl, schwarz, blau und Blob |
? | Stellt ein einzelnes Zeichen dar | h?t findet heiß, Hut und Hit |
[] | Stellt ein beliebiges einzelnes Zeichen innerhalb der Klammern dar | h[oa]t findet hot und hat, aber nicht hit |
! | Stellt jedes Zeichen dar, das nicht in den Klammern steht | h[!oa]t findet Hit, aber nicht Hot und Hat |
– | Stellt ein beliebiges einzelnes Zeichen innerhalb des angegebenen Bereichs dar | c[a-b]t findet Katze und cbt |
# | 2#5 findet 205, 215, 225, 235, 245, 255, 265, 275, 285 und 295 |