sql >> Database >  >> RDS >> MariaDB

Verschil tussen TRIM() en TRIM_ORACLE() in MariaDB

MariaDB heeft een TRIM() functie en een TRIM_ORACLE() functie. Beide functies doen in wezen hetzelfde. Maar er is een klein verschil.

Het verschil

Het verschil zit in hoe elke functie omgaat met lege strings:

  • TRIM() verwijdert tekens aan het begin of einde van een tekenreeks. Wanneer u een lege tekenreeks doorgeeft, hangt het resultaat ervan af of u zich in de Oracle-modus bevindt of niet. Als in Oracle-modus, retourneert het null . Anders retourneert het een lege string.
  • TRIM_ORACLE() is een synoniem voor de Oracle-modusversie van TRIM() . Het gedraagt ​​zich als TRIM() in Oracle-modus (het retourneert null wanneer een lege string wordt doorgegeven), zelfs wanneer niet in Oracle-modus.

Dus TRIM_ORACLE() werkt precies zoals TRIM() in Oracle-modus. Maar wanneer niet in Oracle-modus, is het enige verschil hoe elke functie omgaat met lege strings.

Voorbeeld

Dit kan het beste worden uitgelegd aan de hand van een voorbeeld.

Standaardmodus

Hier is een vergelijking van deze functies in de standaardmodus:

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

Resultaat:

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

Eerst zette ik mijn systeem in de standaardmodus (ook al was het waarschijnlijk al in de standaardmodus), daarna voerde ik beide functies uit met een lege tekenreeks.

We kunnen zien dat TRIM() geeft een lege string terug, terwijl TRIM_ORACLE() retourneert null .

Oracle-modus

Laten we het nu in de Oracle-modus zetten en de code opnieuw uitvoeren:

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

Resultaat:

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

We kunnen zien dat TRIM() gedraagt ​​zich nu als TRIM_ORACLE() .

Dus met TRIM() , moeten we expliciet overschakelen naar de Oracle-modus voordat we ervoor zorgen dat het zich gedraagt ​​als de Oracle-versie van TRIM() .

TRIM_ORACLE() aan de andere kant is het beschikbaar in alle modi, zodat we niet hoeven over te schakelen naar de Oracle-modus.


  1. Een telefoonnummer opmaken in SQL Server (T-SQL)

  2. Mijn favoriete PostgreSQL-extensies - deel één

  3. Resultaten uit twee afzonderlijke databases samenvoegen

  4. PostgreSQL:export van resulterende gegevens van SQL-query naar Excel/CSV