- Kategorien:
Zeichenfolgen- und Binärfunktionen (Abgleich/Vergleich)
LIKE ALL¶
Ermöglicht das Abgleichen von Zeichenfolgen basierend auf dem Vergleich mit einem oder mehreren Mustern unter Berücksichtigung der Groß- und Kleinschreibung.
Die Operation ähnelt LIKE
. Wenn die Eingabezeichenfolge exakt mit allen Mustern übereinstimmt, wird die Eingabezeichenfolge zurückgegeben.
- Siehe auch:
Syntax¶
<subject> LIKE ALL (<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¶
Der Datentyp des zurückgegebenen Werts ist VARCHAR.
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 ist und eines der Muster NULL ist, wird dies nicht als Übereinstimmung angesehen.
Wenn die Funktion mit einer Unterabfrage verwendet wird, sollte die Unterabfrage eine einzelne Zeile zurückgeben.
Beispielsweise sollte Folgendes nur verwendet werden, wenn die Unterabfrage eine einzelne Zeile zurückgibt:
SELECT ... WHERE x LIKE ALL (SELECT ...)
Beispiele¶
Erstellen Sie eine Tabelle, die einige Zeichenfolgen enthält:
CREATE OR REPLACE TABLE like_all_example(subject varchar(20));
INSERT INTO like_all_example VALUES
('John Dddoe'),
('Joe Doe'),
('John_do%wn'),
('Joe down'),
('Tom Doe'),
('Tim down'),
(null);
Diese Abfrage zeigt, wie Muster mit Platzhaltern (%
) verwendet werden, um Übereinstimmungen zu finden:
SELECT *
FROM like_all_example
WHERE subject LIKE ALL ('%Jo%oe%','J%e')
ORDER BY subject;
+-------------+
| SUBJECT |
|-------------|
| Joe Doe |
| John Dddoe |
+-------------+
Die folgende Abfrage zeigt, wie alle Muster für ein erfolgreiches Ergebnis übereinstimmen müssen:
SELECT *
FROM like_all_example
WHERE subject LIKE ALL ('%Jo%oe%','J%n')
ORDER BY subject;
+---------+
| SUBJECT |
|---------|
+---------+
Diese Abfrage zeigt, wie ein Escapezeichen verwendet wird, um anzugeben, dass Zeichen, bei denen es sich normalerweise um Platzhalter (_
und %
) handelt, als Literale behandelt werden sollen.
SELECT *
FROM like_all_example
WHERE subject LIKE ALL ('%J%h%^_do%', 'J%^%wn') ESCAPE '^'
ORDER BY subject;
+------------+
| SUBJECT |
|------------|
| John_do%wn |
+------------+