MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie TRIM() in MariaDB funktioniert

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 Argument

Standardmäßig TRIM() trimmt beide Seiten der Saite. Sie können jedoch explizit BOTH 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 Argument

Angabe 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 Argument

Angabe 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 und TRAILING 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 Ergebnis null :

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