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

Unterschied zwischen TRIM() und TRIM_ORACLE() in MariaDB

MariaDB hat ein TRIM() Funktion und ein TRIM_ORACLE() Funktion. Beide Funktionen machen im Wesentlichen das Gleiche. Aber es gibt einen kleinen Unterschied.

Der Unterschied

Der Unterschied besteht darin, wie jede Funktion mit leeren Zeichenfolgen umgeht:

  • TRIM() entfernt Zeichen am Anfang oder Ende einer Zeichenfolge. Wenn eine leere Zeichenfolge übergeben wird, hängt das Ergebnis davon ab, ob Sie sich im Oracle-Modus befinden oder nicht. Im Oracle-Modus wird null zurückgegeben . Andernfalls wird ein leerer String zurückgegeben.
  • TRIM_ORACLE() ist ein Synonym für die Oracle-Modus-Version von TRIM() . Es verhält sich wie TRIM() im Oracle-Modus (es gibt null zurück wenn ein leerer String übergeben wird), auch wenn nicht im Oracle-Modus.

Also TRIM_ORACLE() funktioniert genauso wie TRIM() im Oracle-Modus. Aber wenn Sie sich nicht im Oracle-Modus befinden, besteht der einzige Unterschied darin, wie jede Funktion mit leeren Zeichenfolgen umgeht.

Beispiel

Dies lässt sich am besten an einem Beispiel erklären.

Standardmodus

Hier ist ein Vergleich dieser Funktionen im Standardmodus:

SET SQL_MODE=DEFAULT;
SELECT
    TRIM(''),
    TRIM_ORACLE('');

Ergebnis:

+----------+-----------------+
| TRIM('') | TRIM_ORACLE('') |
+----------+-----------------+
|          | NULL            |
+----------+-----------------+

Zuerst habe ich mein System in den Standardmodus versetzt (obwohl es wahrscheinlich bereits im Standardmodus war), dann habe ich beide Funktionen mit einem leeren String ausgeführt.

Wir können das TRIM() sehen gibt einen leeren String zurück, während TRIM_ORACLE() gibt null zurück .

Oracle-Modus

Lassen Sie uns nun den Oracle-Modus einstellen und den Code erneut ausführen:

SET SQL_MODE=ORACLE;
SELECT
    TRIM(''),
    TRIM_ORACLE('');

Ergebnis:

+----------+-----------------+
| TRIM('') | TRIM_ORACLE('') |
+----------+-----------------+
| NULL     | NULL            |
+----------+-----------------+

Wir können das TRIM() sehen verhält sich jetzt wie TRIM_ORACLE() .

Also mit TRIM() , müssen wir explizit in den Oracle-Modus wechseln, damit er sich wie die Oracle-Version von TRIM() verhält .

TRIM_ORACLE() andererseits ist in allen Modi verfügbar, sodass wir nicht in den Oracle-Modus wechseln müssen.