sql >> Database teknologi >  >> RDS >> MariaDB

Forskellen mellem TRIM() og TRIM_ORACLE() i MariaDB

MariaDB har en TRIM() funktion og en TRIM_ORACLE() fungere. Begge funktioner gør stort set det samme. Men der er en mindre forskel.

Forskellen

Forskellen er, hvordan hver funktion håndterer tomme strenge:

  • TRIM() fjerner tegn fra starten eller slutningen af ​​en streng. Når du passerer en tom streng, vil resultatet afhænge af, om du er i Oracle-tilstand eller ej. Hvis den er i Oracle-tilstand, returnerer den null . Ellers returnerer den en tom streng.
  • TRIM_ORACLE() er et synonym for Oracle-tilstandsversionen af ​​TRIM() . Den opfører sig som TRIM() i Oracle-tilstand (det returnerer null når du passerer en tom streng), selv når den ikke er i Oracle-tilstand.

TRIM_ORACLE() fungerer nøjagtigt som TRIM() i Oracle-tilstand. Men når den ikke er i Oracle-tilstand, er den eneste forskel, hvordan hver funktion håndterer tomme strenge.

Eksempel

Dette forklares bedst med et eksempel.

Standardtilstand

Her er en sammenligning af disse funktioner i standardtilstand:

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

Resultat:

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

Først satte jeg mit system til standardtilstand (selvom det sandsynligvis allerede var i standardtilstand), så kørte jeg begge funktioner med en tom streng.

Vi kan se at TRIM() returnerer en tom streng, mens TRIM_ORACLE() returnerer null .

Oracle Mode

Lad os nu indstille den til Oracle-tilstand og køre koden igen:

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

Resultat:

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

Vi kan se at TRIM() opfører sig nu som TRIM_ORACLE() .

Altså med TRIM() , skal vi eksplicit skifte til Oracle-tilstand, før vi får den til at opføre sig som Oracle-versionen af ​​TRIM() .

TRIM_ORACLE() på den anden side er tilgængelig i alle tilstande, så det sparer os for at skulle skifte til Oracle-tilstand.


  1. fejl ved installation af psycopg2, bibliotek blev ikke fundet for -lssl

  2. Kan PostgreSQL udføre en joinforbindelse mellem to SQL Server-lagrede procedurer?

  3. Er Intel dømt i serverens CPU-plads?

  4. Brug PARSENAME() til at returnere en del af et objektnavn i SQL Server