Anfang des InhaltsbereichsLIKE-Prädikat (like_predicate) Dokument im Navigationsbaum lokalisieren

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_element

Erlä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.

Beispiel

Suchen einer beliebigen Zeichenkette mit der Minimallänge 1: LIKE '%_'
Suchen einer Zeichenkette, bei der eine feste Anzahl von Zeichen bekannt ist: LIKE'_c_'
Suchen einer Zeichenkette mit beliebig vielen Zeichen, wobei die Zeichenkette ein <underscore> enthalten muß: LIKE '%:_%'ESCAPE':'

Beispiel

Beispieltabelle kunde

Kunden 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

Ende des Inhaltsbereichs