## LIKE-Prädikat (like_predicate)

Ein LIKE-Prädikat (like_predicate) ist eine Prädikat, das zur Suche nach Zeichenketten dient, 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>...'
<pattern_element> ::= <match_string> | <match_set>

<match_string> ::= % | X'1F'
<match_set> ::= <underscore> | X'1E' | <match_char>

<underscore> ::= _ (Unterstrich)
<match_char> ::= <! Jedes Zeichen außer % | X'1F' | <underscore> | X'1E' !>

### Beispiele

SQL-Tutorial, Suchen nach Zeichenketten: LIKE, Negative Bedingungen: NOT

### Erläuterung

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

#### <expression>

Der Ausdruck expression im LIKE-Ausdruck like_expression muss einen alphanumerischen Wert oder einen Datums- oder Zeitwert liefern.

#### <pattern_element>

Wenn ein match_string angegeben wird, bedeutet das, dass diese Stelle im Suchmuster durch eine beliebige Anzahl von Zeichen ersetzt werden kann.

Wenn ein match_set angegeben wird, bedeutet das, dass diese Stelle im Suchmuster durch die durch das match_set vorgegebene Anzahl von Zeichen ersetzt werden kann.

Die Verwendung eines Unterstrichs oder X'1E' bedeutet, dass diese Stelle im Muster durch genau ein beliebiges Zeichen ersetzt werden kann.

Die Verwendung von match_char bedeutet, dass diese Stelle im Muster durch das angegebene Zeichen selbst ersetzt werden kann.

#### ESCAPE

Die Verwendung eines Escape-Zeichens ESCAPE <expression> ist dann notwendig, wenn nach einem Unterstrich 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.