LIKE-Prädikat (like_predicate)
Ein LIKE-
Prädikat ( like_predicate ) dient zur Suche nach Zeichenketten, die ein bestimmtes Muster haben. Dieses Muster kann eine bestimmte Zeichenkette sein, eine Folge von Zeichen mit unbekannter Anzahl oder eine Menge von Zeichen mit bestimmter Anzahl.Syntax
<like_predicate> ::= <expression> [NOT] LIKE <like_expression> [ESCAPE <expression>]
<like_expression> ::= <expression> | '<pattern_element>...'
expression, pattern_elementErläuterung
Der Ausdruck in
like_expression muß einen alphanumerischen Wert oder einen Datums- oder Zeitwert liefern.x NOT LIKE y
hat das gleiche Ergebnis wie NOT(x LIKE y) .|
Ergebnis von x LIKE y | |
x oder y sind NULL-Werte |
x LIKE y ist undefiniert |
x und y sind Nicht-NULL-Werte |
x LIKE y ist entweder wahr oder falsch |
x läßt sich in Teilzeichenketten zerlegen, so daß gilt: Eine Teilzeichenkette von x ist eine Folge von 0,1, oder eine Folge von mehreren benachbarten Zeichen und jedes Zeichen von x gehört genau zu einer Teilzeichenkette. Die Anzahl der Teilzeichenketten von x und y ist gleich. Das n-te Vergleichsmuster ( pattern_element ) von y ist eine Menge von Zeichen und die n-te Teilzeichenkette von x ist ein einzelnes Zeichen, welches in der Menge von Zeichen enthalten ist. |
x LIKE y ist wahr |
x läßt sich in Teilzeichenketten zerlegen, so daß gilt: Eine Teilzeichenkette von x ist eine Folge von 0,1, oder eine Folge von mehreren benachbarten Zeichen und jedes Zeichen von x gehört genau zu einer Teilzeichenkette. Die Anzahl der Teilzeichenketten von x und y ist gleich. Das n-te Vergleichsmuster ( pattern_element ) von y ist eine Folge von Zeichen und die n-te Teilzeichenkette von x ist eine Folge von 0 oder mehr Zeichen. |
x LIKE y ist wahr |
Wenn ESCAPE angegeben wird, muß der zugehörige Ausdruck (
expression ) im LIKE-Prädikat einen alphanumerischen Wert liefern, der aus genau einem Zeichen besteht. Ist dieses Escape-Zeichen in dem LIKE-Ausdruck ( like_expression ) enthalten, so wird das darauffolgende Zeichen als für sich selbst stehendes Zeichen angesehen.Die Verwendung eines Escape-Zeichens ist dann notwendig, wenn nach <underscore>, '?', '%' oder '*' oder dem hexadezimalen Wert X'1E' oder X'1F' gesucht werden soll.

Suchen einer beliebigen Zeichenkette mit der Minimallänge 1:

Beispieltabelle
kundeKunden mit 'AG' am Ende des Kundennamens:
SELECT nachname, ort FROM kunde
WHERE nachname LIKE '%AG'
NACHNAME |
ORT |
GIAG |
Köln |
Kunden mit einem sechsstelligen Nachnamen, der mit 'S' beginnt:
SELECT nachname, ort FROM kunde
WHERE nachname LIKE 'S?????'
NACHNAME |
ORT |
Starke |
Berlin |
Steger |
Berlin |
Kunden mit einem beliebigstelligen Nachnamen, der mit 'S' beginnt:
SELECT nachname, ort FROM kunde
WHERE nachname LIKE 'S%'
NACHNAME |
ORT |
Starke |
Berlin |
Steger |
Berlin |
Schwarz |
Stuttgart |
Schulze |
Berlin |
Kunden mit einem 'z' ab der zweiten Stelle:
SELECT nachname, ort FROM kunde
WHERE nachname LIKE '_%z%'
NACHNAME |
ORT |
Schwarz |
Stuttgart |
Wenzel |
Hamburg |
Rietz |
Berlin |
Schulze |
Berlin |