Kategorien:

Zeichenfolgen- und Binärfunktionen (Abgleich/Vergleich)

[ NOT ] ILIKE

Führt einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung aus, um festzustellen, ob eine Zeichenfolge mit einem angegebenen Muster übereinstimmt oder nicht. Verwenden Sie für Abgleiche mit Berücksichtigung der Groß-/Kleinschreibung stattdessen LIKE.

LIKE, ILIKE und RLIKE führen alle ähnliche Operationen aus. RLIKE nutzt jedoch die POSIX ERE (Extended Regular Expression)-Syntax und nicht die SQL-Mustersyntax, die von LIKE und ILIKE verwendet wird.

Tipp

Sie können den Suchoptimierungsdienst verwenden, um die Leistung von Abfragen zu verbessern, die diese Funktion aufrufen. Weitere Details dazu finden Sie unter Suchoptimierungsdienst.

Siehe auch::

[ NOT ] LIKE, [ NOT ] RLIKE

Syntax

<subject> [ NOT ] ILIKE <pattern> [ ESCAPE <escape> ]

ILIKE( <subject> , <pattern> [ , <escape> ] )
Copy

Argumente

Benötigt:

subject

Abzugleichendes Subjekt.

pattern

Abzugleichendes Muster.

Optional:

escape

Zeichen, die vor einem Platzhalterzeichen eingefügt werden, um anzuzeigen, dass der Platzhalter als normales Zeichen und nicht als Platzhalter interpretiert werden soll.

Rückgabewerte

Gibt einen BOOLEAN-Wert oder NULL zurück.

  • Wenn ILIKE angegeben ist und eine Übereinstimmung vorliegt, ist der Wert TRUE. Andernfalls wird FALSE zurückgegeben.

  • Wenn NOT ILIKE angegeben ist und keine Übereinstimmung vorliegt, ist der Wert TRUE. Andernfalls wird FALSE zurückgegeben.

  • Wenn entweder ILIKE oder NOT ILIKE angegeben ist, wird NULL zurückgegeben, wenn ein Argument NULL ist.

Nutzungshinweise

  • Um einfache Anführungszeichen oder andere Sonderzeichen in die Mustererkennung einzubeziehen, können Sie die Backslash-Escapesequenz verwenden.

  • NULL stimmt nicht mit NULL überein. Mit anderen Worten: Wenn das Subjekt NULL ist und das Muster NULL ist, wird dies nicht als Übereinstimmung angesehen.

  • SQL-Platzhalter werden in pattern unterstützt:

    • Ein Unterstrich (_) nimmt einen Abgleich für beliebige Einzelzeichen vor.

    • Ein Prozentzeichen (%) nimmt einen Abgleich für eine beliebige Sequenz von null oder mehr Zeichen vor.

  • Platzhalter in pattern erkennen in subject-Werten auch Zeilenumbruchzeichen (n) als Übereinstimmungen.

  • Eine Mustererkennung deckt die gesamte Zeichenfolge ab. Um eine Sequenz an einer beliebigen Stelle in einer Zeichenfolge abzugleichen, beginnen und beenden Sie das Muster mit %.

  • Es gibt kein Standard-Escape-Zeichen.

  • Wenn Sie den umgekehrten Schrägstrich (Backslash) als Escape-Zeichen verwenden, müssen Sie den Backslash sowohl im Ausdruck als auch in der ESCAPE-Klausel escapen. Der folgende Befehl gibt beispielsweise an, dass das Escape-Zeichen der Backslash ist, und sucht dann mit diesem Escape-Zeichen nach % als Literal (ohne das Escape-Zeichen wird % als Platzhalter behandelt):

    'SOMETHING%' ILIKE '%\\%%' ESCAPE '\\';
    
    Copy

    Beispiele für die Verwendung von Escape-Zeichen finden Sie in den Beispielen für ILIKE. Beispiele für die Verwendung von Escape-Zeichen und insbesondere des Backslash-Zeichens als Escape-Zeichen finden Sie in den Beispielen für LIKE.

Sortierungsdetails

Es werden nur die Sortierungsspezifikationen upper, lower und trim unterstützt. Kombinationen mit upper, lower und trim werden ebenfalls unterstützt (z. B. upper-trim und lower-trim), mit Ausnahme von Gebietsschema-Kombinationen (z. B. en-upper).

Beispiele

Erstellen Sie eine Tabelle, die einige Zeichenfolgen enthält:

CREATE OR REPLACE TABLE ilike_ex(name VARCHAR(20));
INSERT INTO ilike_ex VALUES
  ('John  Dddoe'),
  ('Joe   Doe'),
  ('John_down'),
  ('Joe down'),
  (null);
Copy

Die folgenden Beispiele zeigen die Verwendung von ILIKE, NOT ILIKE und des Platzhalterzeichens %:

SELECT * 
  FROM ilike_ex 
  WHERE name ILIKE '%j%h%do%'
  ORDER BY 1;
Copy
+-------------+                                                                 
| NAME        |
|-------------|
| John  Dddoe |
| John_down   |
+-------------+
SELECT *
  FROM ilike_ex
  WHERE name NOT ILIKE '%j%h%do%'
  ORDER BY 1;
Copy
+-----------+
| NAME      |
|-----------|
| Joe   Doe |
| Joe down  |
+-----------+
SELECT * 
  FROM ilike_ex 
  WHERE name ILIKE '%j%h%^_do%' ESCAPE '^'
  ORDER BY 1;
Copy
+-----------+                                                                   
| NAME      |
|-----------|
| John_down |
+-----------+