sql >> Databáze >  >> RDS >> MariaDB

Rozdíl mezi TRIM() a TRIM_ORACLE() v MariaDB

MariaDB má TRIM() funkce a TRIM_ORACLE() funkce. Obě funkce dělají v podstatě totéž. Ale je tu menší rozdíl.

Rozdíl

Rozdíl je v tom, jak každá funkce pracuje s prázdnými řetězci:

  • TRIM() odstraní znaky ze začátku nebo konce řetězce. Po předání prázdného řetězce bude výsledek záviset na tom, zda jste v režimu Oracle nebo ne. Pokud je v režimu Oracle, vrátí null . Jinak vrátí prázdný řetězec.
  • TRIM_ORACLE() je synonymem pro verzi TRIM() v režimu Oracle . Chová se jako TRIM() v režimu Oracle (vrací null při předání prázdného řetězce), i když není v režimu Oracle.

Takže TRIM_ORACLE() funguje přesně jako TRIM() v režimu Oracle. Ale když není v režimu Oracle, jediný rozdíl je v tom, jak každá funkce pracuje s prázdnými řetězci.

Příklad

Nejlépe to vysvětlí příklad.

Výchozí režim

Zde je srovnání těchto funkcí ve výchozím režimu:

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

Výsledek:

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

Nejprve jsem nastavil svůj systém do výchozího režimu (i když pravděpodobně již byl ve výchozím režimu), poté jsem obě funkce spustil s prázdným řetězcem.

Vidíme, že TRIM() vrátí prázdný řetězec, zatímco TRIM_ORACLE() vrátí null .

Režim Oracle

Nyní jej nastavte do režimu Oracle a spusťte kód znovu:

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

Výsledek:

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

Vidíme, že TRIM() se nyní chová jako TRIM_ORACLE() .

Takže pomocí TRIM() , musíme se explicitně přepnout do režimu Oracle, než se začne chovat jako verze Oracle TRIM() .

TRIM_ORACLE() na druhou stranu je k dispozici ve všech režimech, takže nás ušetří přepínání do režimu Oracle.


  1. nastavení globálního sql_mode v mysql

  2. Jak naplánovat zálohování databáze pomocí ClusterControl

  3. Vkládejte velké množství dat efektivně pomocí SQL

  4. Datatyp Oracle Date, transformovaný na 'YYYY-MM-DD HH24:MI:SS TMZ' prostřednictvím SQL