In MariaDB TRIM()
ist eine integrierte Zeichenfolgenfunktion, die Zeichen am Anfang oder Ende einer Zeichenfolge entfernt.
Standardmäßig werden führende und nachgestellte Leerzeichen entfernt, aber Sie können angeben, welches Zeichen entfernt werden soll und von welcher Seite/n Sie es entfernen möchten.
Syntax
Das TRIM()
Funktion kann wie folgt verwendet werden:
TRIM([remstr FROM] str)
Oder:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Wobei str
ist die Zeichenfolge, aus der alle abschließenden Leerzeichen entfernt werden sollen, und remstr
ist die zu entfernende Zeichenfolge.
Wenn remstr
nicht angegeben ist, dann TRIM()
entfernt Leerzeichen.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(' Caribbean Island ') AS "Trimmed";
Ergebnis:
+------------------------+------------------+| Unbeschnitten | Beschnitten |+------------------------+------------------+| Karibische Insel | Karibische Insel |+------------------------+--------------------------+Dieses Beispiel verwendet die einfachste Syntax. Alles, was wir taten, war die Schnur zum Trimmen bereitzustellen. Wir haben nicht angegeben, welche Zeichen gekürzt werden sollen, und daher wurden alle Leerzeichen auf beiden Seiten der Zeichenfolge gekürzt.
Wir können auch sehen, dass das Leerzeichen innerhalb des Strings intakt bleibt.
Die
BOTH
ArgumentStandardmäßig
TRIM()
trimmt beide Seiten der Saite. Sie können jedoch explizitBOTH
angeben wenn Sie möchten:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(BOTH FROM ' Caribbean Island ') AS "Trimmed";
Ergebnis:
+------------------------+------------------+| Unbeschnitten | Beschnitten |+------------------------+------------------+| Karibische Insel | Karibische Insel |+------------------------+--------------------------+Wir erhalten dasselbe Ergebnis wie im vorherigen Beispiel.
Der
LEADING
ArgumentAngabe von
LEADING
begrenzt die Trim-Operation auf den Anfang der Zeichenfolge:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(LEADING FROM ' Caribbean Island ') AS "Trimmed";
Ergebnis:
+------------------------+--------------------- +| Unbeschnitten | Beschnitten |+------------------------+---------------------+ | Karibische Insel | Karibische Insel |+------------------------+--------------------- +Wir können sehen, dass auf der rechten Seite der getrimmten Zeichenfolge noch Leerzeichen vorhanden sind. Nur der linke Teil wurde getrimmt.
Der
TRAILING
ArgumentAngabe von
TRAILING
begrenzt die Trim-Operation auf den Anfang der Zeichenfolge:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(TRAILING FROM ' Caribbean Island ') AS "Trimmed";
Ergebnis:
+------------------------+--------------------- +| Unbeschnitten | Beschnitten |+------------------------+---------------------+ | Karibische Insel | Karibische Insel |+------------------------+--------------------- +Diesmal wurde nur der rechte Teil getrimmt. Auf der linken Seite der getrimmten Zeichenfolge sind noch Leerzeichen vorhanden.
Geben Sie eine zu kürzende Zeichenfolge an
Hier ist ein Beispiel für die Angabe, welches Zeichen gekürzt werden soll:
SELECT '...mountain...' AS "Untrimmed", TRIM('.' FROM '...mountain...') AS "Trimmed";
Ergebnis:
+-----------+----------+| Unbeschnitten | Beschnitten |+-----------+----------+| ...Berg... | Berg |+-----------+----------+Es muss kein einzelnes Zeichen sein. Sie können eine beliebige Zeichenfolge zum Trimmen angeben:
SELECT TRIM('.' FROM '.+.mountain.+.') AS "1", TRIM('.+' FROM '.+.mountain.+.') AS "2", TRIM('+.' FROM '.+.mountain.+.') AS "3", TRIM('.+.' FROM '.+.mountain.+.') AS "4";
Ergebnis:
+--------------+------+--------------+- ---------+| 1 | 2 | 3 | 4 |+--------------+-------------+--------------+-- --------+| +.berg.+ | .berg.+. | .+.berg. | Berg |+--------------+-------------+-------------+-- --------+Sie können sogar einen Teil des Wortes kürzen, wenn Sie möchten:
SELECT TRIM('moun' FROM 'mountain');
Ergebnis:
+------------------------------+| TRIM('Berg' FROM 'Berg') |+------------------------------+| tain |+------------------------------+Wir können auch
BOTH
verwenden ,LEADING
undTRAILING
Argumente bei der Angabe der zu trimmenden Zeichenfolge.Beispiel:
SELECT TRIM(BOTH '.' FROM '...mountain...') AS "Both", TRIM(LEADING '.' FROM '...mountain...') AS "Leading", TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing";
Ergebnis:
+----------+------------+------------+| Beide | Führend | Nachgestellt |+----------+---------------------+---------------------+| Berg | Berg... | ...Berg |+----------+---------------------+---------------------+Null-Argumente
Wenn ein
null
gegeben wird -Argument ist das Ergebnisnull
:SELECT TRIM(null);
Ergebnis:
+------------+| TRIM(null) |+------------+| NULL |+------------+Oracle-Modus
Wenn nicht Wenn das Ergebnis im Oracle-Modus leer ist (d. h. eine Länge von Null hat), ist das Ergebnis ein leerer String.
Bei der Ausführung im Oracle-Modus ist das Ergebnis jedoch
null
.Hier ist es im Standardmodus (also nicht im Oracle-Modus):
SELECT TRIM('');
Ergebnis:
+----------+| TRIM('') |+----------+| |+----------+Wechseln wir nun in den Oracle-Modus:
SET SQL_MODE=ORACLE;
Und führen Sie den Code erneut aus:
SELECT TRIM('');
Ergebnis:
+----------+| TRIM('') |+----------+| NULL |+----------+Es gibt auch eine alternative Möglichkeit, dies zu tun. Anstatt in den Oracle-Modus zu wechseln, können Sie
TRIM_ORACLE()
verwenden als Funktionsname.Wechseln wir zurück in den Standardmodus:
SET SQL_MODE=DEFAULT;
Und jetzt führen Sie
TRIM_ORACLE()
aus :SELECT TRIM_ORACLE('');
Ergebnis:
+----------------+| TRIM_ORACLE('') |+----------------+| NULL |+----------------+Fehlendes Argument
Aufruf von
TRIM()
ohne Argument führt zu einem Fehler:SELECT TRIM();
Ergebnis:
ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwenden