MariaDB
 sql >> база данни >  >> RDS >> MariaDB

MariaDB RTRIM() срещу RTRIM_ORACLE():Каква е разликата?

MariaDB има RTRIM() функция и RTRIM_ORACLE() функция. И двете функции правят по същество едно и също нещо. Но има малка разлика.

Разликата

Разликата е в това как всяка функция се справя с празните низове:

  • RTRIM() премахва крайните интервали от низ. Когато се подаде празен низ, резултатът ще зависи от това дали сте в режим на Oracle или не. Ако е в режим на Oracle, той връща null . В противен случай връща празен низ.
  • RTRIM_ORACLE() е синоним на версията на RTRIM() в режим Oracle . Той се държи като RTRIM() в режим на Oracle (връща null когато се предава празен низ), дори когато не е в режим на Oracle.

Така че RTRIM_ORACLE() работи точно като RTRIM() когато е в режим на Oracle. Но когато не е в режим на Oracle, единствената разлика е как всяка функция се справя с празните низове.

Пример

Това е най-добре обяснено с пример.

Режим по подразбиране

Ето сравнение на тези функции в режим по подразбиране:

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

Резултат:

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

Първо, настроих системата си в режим по подразбиране (въпреки че вероятно вече беше в режим по подразбиране), след това стартирах и двете функции с празен низ.

Можем да видим, че RTRIM() връща празен низ, докато RTRIM_ORACLE() връща null .

Режим Oracle

Сега нека го настроим в режим Oracle и стартираме кода отново:

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

Резултат:

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

Можем да видим, че RTRIM() сега се държи като RTRIM_ORACLE() .

И така, с RTRIM() , трябва изрично да преминем към режим на Oracle, преди да го накараме да се държи като версията на Oracle на RTRIM() .

RTRIM_ORACLE() от друга страна, е наличен във всички режими, така че ни спестява да преминем към режим на 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. Как NOT REGEXP работи в MariaDB

  2. 4 начина за намиране на редове, които съдържат малки букви в MariaDB

  3. Как да върнете имената на месеца и дните на различен език в MariaDB

  4. Пълен списък с набори от символи, поддържани от MariaDB

  5. 3 начина да получите наличните съпоставяния в MariaDB