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

MariaDB RTRIM() vs RTRIM_ORACLE():Hvad er forskellen?

MariaDB har en RTRIM() funktion og en RTRIM_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:

  • RTRIM() fjerner efterfølgende mellemrum fra 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.
  • RTRIM_ORACLE() er et synonym for Oracle-tilstandsversionen af ​​RTRIM() . Den opfører sig som RTRIM() i Oracle-tilstand (det returnerer null når du passerer en tom streng), selv når den ikke er i Oracle-tilstand.

RTRIM_ORACLE() fungerer præcis som RTRIM() 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
    RTRIM(''),
    RTRIM_ORACLE('');

Resultat:

+-----------+------------------+
| RTRIM('') | RTRIM_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 RTRIM() returnerer en tom streng, mens RTRIM_ORACLE() returnerer null .

Oracle Mode

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

SET SQL_MODE=ORACLE;
SELECT
    RTRIM(''),
    RTRIM_ORACLE('');

Resultat:

+-----------+------------------+
| RTRIM('') | RTRIM_ORACLE('') |
+-----------+------------------+
| NULL      | NULL             |
+-----------+------------------+

Vi kan se, at RTRIM() opfører sig nu som RTRIM_ORACLE() .

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

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


  1. Sådan kombinerer du dato fra et felt med tid fra et andet felt - MS SQL Server

  2. Oprettelse af sammensat primær nøgle i SQL Server

  3. Observer Overhead og Vent Type Symptomer

  4. Match en sætning, der ender på et præfiks, med fuldtekstsøgning