MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

MariaDB RTRIM() vs RTRIM_ORACLE():Jaka jest różnica?

MariaDB ma RTRIM() funkcja i RTRIM_ORACLE() funkcjonować. Obie funkcje robią zasadniczo to samo. Ale jest niewielka różnica.

Różnica

Różnica polega na tym, jak każda funkcja radzi sobie z pustymi ciągami:

  • RTRIM() usuwa końcowe spacje z ciągu. Po przekazaniu pustego ciągu wynik będzie zależał od tego, czy jesteś w trybie Oracle, czy nie. W trybie Oracle zwraca null . W przeciwnym razie zwraca pusty ciąg.
  • RTRIM_ORACLE() jest synonimem wersji RTRIM() w trybie Oracle . Zachowuje się jak RTRIM() w trybie Oracle (zwraca null po przekazaniu pustego ciągu), nawet jeśli nie jest w trybie Oracle.

Więc RTRIM_ORACLE() działa dokładnie tak jak RTRIM() w trybie Oracle. Ale kiedy nie jest w trybie Oracle, jedyną różnicą jest to, jak każda funkcja radzi sobie z pustymi ciągami.

Przykład

Najlepiej to wyjaśnić na przykładzie.

Tryb domyślny

Oto porównanie tych funkcji w trybie domyślnym:

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

Wynik:

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

Najpierw ustawiłem swój system w tryb domyślny (choć prawdopodobnie był już w trybie domyślnym), a następnie uruchomiłem obie funkcje z pustym ciągiem.

Widzimy, że RTRIM() zwraca pusty ciąg, podczas gdy RTRIM_ORACLE() zwraca null .

Tryb Oracle

Teraz ustawmy go w trybie Oracle i ponownie uruchom kod:

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

Wynik:

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

Widzimy, że RTRIM() teraz zachowuje się jak RTRIM_ORACLE() .

Tak więc za pomocą RTRIM() , musimy jawnie przełączyć się na tryb Oracle, zanim sprawimy, by zachowywał się jak wersja Oracle RTRIM() .

RTRIM_ORACLE() z drugiej strony jest dostępny we wszystkich trybach, dzięki czemu nie musimy przełączać się na tryb Oracle.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak obliczyć wiek w MariaDB

  2. Jak CRC32 działa w MariaDB

  3. Napraw „BŁĄD 1054 (42S22):Nieznana kolumna „colname” w „klauzula zamówienia” w MariaDB

  4. Unikanie blokady dostawcy bazy danych dla MySQL lub MariaDB

  5. Zainstaluj WordPress z Nginx, MariaDB 10 i PHP 7 na Debianie 9