- Kategorien:
Zeichenfolgen- und Binärfunktionen (Abgleich/Vergleich)
LIKE ANY¶
Führt einen Vergleich unter Berücksichtigung der Groß-/Kleinschreibung aus, um eine Zeichenfolge mit einem oder mehreren angegebenen Mustern abzugleichen. Verwenden Sie diese Funktion in einer WHERE-Klausel, um nach Übereinstimmungen zu filtern. Verwenden Sie für Abgleiche ohne Berücksichtigung der Groß-/Kleinschreibung stattdessen ILIKE ANY.
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:
Syntax¶
<subject> LIKE ANY (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
Argumente¶
Benötigt:
subject
Die Zeichenfolge, die mit den Mustern verglichen werden soll.
pattern#
Die Muster, mit denen die Zeichenfolge verglichen werden soll. Sie müssen mindestens ein Muster angeben.
Optional:
escape_char
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. Der Wert ist TRUE, wenn es eine Übereinstimmung gibt. Andernfalls wird FALSE zurückgegeben. Gibt NULL zurück, wenn ein Argument NULL ist.
Nutzungshinweise¶
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 insubject
-Werten auch Zeilenumbruchzeichen (n
) als Übereinstimmungen.Das Muster wird als Übereinstimmung betrachtet, wenn das Muster mit der gesamten Eingabezeichenfolge (Subjekt) übereinstimmt. Um eine Sequenz an beliebiger Stelle innerhalb einer Zeichenfolge abzugleichen, beginnen und beenden Sie das Muster mit
%
(z. B.%something%
).NULL stimmt nicht mit NULL überein. Mit anderen Worten: Wenn das Subjekt NULL und eines der Muster NULL sind, wird dies nicht als Übereinstimmung angesehen.
Sie können den logischen Operator NOT vor
subject
verwenden, um einen Vergleich unter Berücksichtigung der Groß-/Kleinschreibung auszuführen, der TRUE zurückgibt, wenn er mit keinem der angegebenen Muster übereinstimmt.
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
).
Bemerkung
Um diese Funktion mit einer Spalte zu verwenden, die die Sortierungsspezifizierer upper
, lower
oder trim
hat, müssen Sie das Verhaltensänderungs-Bundle 2024_02 in Ihrem Konto aktivieren.
Um dieses Bundle in Ihrem Konto zu aktivieren, führen Sie die folgende Anweisung aus:
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Beispiele¶
Erstellen Sie eine Tabelle, die einige Zeichenfolgen enthält:
CREATE OR REPLACE TABLE like_example(name VARCHAR(20));
INSERT INTO like_example VALUES
('John Dddoe'),
('Joe Doe'),
('John_down'),
('Joe down'),
('Tom Doe'),
('Tim down'),
(null);
Diese Abfrage zeigt, wie Muster mit Platzhaltern (%
) verwendet werden, um Übereinstimmungen zu finden:
SELECT *
FROM like_example
WHERE name LIKE ANY ('%Jo%oe%','T%e')
ORDER BY name;
+-------------+
| NAME |
|-------------|
| Joe Doe |
| John Dddoe |
| Tom Doe |
+-------------+
Diese Abfrage zeigt, wie ein Escapezeichen verwendet wird, um anzugeben, dass ein Zeichen, bei dem es sich normalerweise um einen Platzhalter (_
) handelt, als Literal behandelt werden soll.
SELECT *
FROM like_example
WHERE name LIKE ANY ('%J%h%^_do%', 'T%^%e') ESCAPE '^'
ORDER BY name;
+-----------+
| NAME |
|-----------|
| John_down |
+-----------+