Anfang des Inhaltsbereichs

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_element

Erläuterung

Der Ausdruck in like_expression muss 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ässt sich in Teilzeichenketten zerlegen, so dass 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

ESCAPE

Die Verwendung eines Escape-Zeichens (ESCAPE <expression>) ist dann notwendig, wenn nach <underscore> oder % oder dem hexadezimalen Wert X'1E' oder X'1F' im LIKE-Prädikat gesucht werden soll.

Wenn ESCAPE <expression> angegeben wird, muss der zugehörige Ausdruck (expression) einen alphanumerischen Wert liefern, der aus genau einem Zeichen besteht. Ist dieses Escape-Zeichen im LIKE-Ausdruck (like_expression) enthalten, so muss das darauffolgende Zeichen eines der Sonderzeichen <underscore>, %, X’1E’ oder X’1F’ sein. Dieses Sonderzeichen wird dann als für sich selbst stehendes Zeichen angesehen.

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 muss: LIKE '%:_%'ESCAPE':'

Beispieltabelle customer

Kunden mit 'FT' am Ende des Kundennamens:

SELECT name, city FROM customer
WHERE name LIKE '%FT'

NAME

CITY

DATASOFT

Dallas

 

Kunden mit einem sechsstelligen Nachnamen, der mit 'P' beginnt:

SELECT name, firstname, city FROM customer
WHERE name LIKE 'P_ _ _ _ _'

NAME

FIRSTNAME

CITY

Porter

Jenny

New York

Porter

Martin

Los Angeles

Peters

Sally

Los Angeles

Porter

Michael

New York

Peters

Joseph

Los Angeles

 

Kunden mit einem 'p' ab der zweiten Stelle:

SELECT name, city FROM customer
WHERE name LIKE '_%p%'

NAME

CITY

Randolph

Los Angeles

 

Ende des Inhaltsbereichs