MariaDBにはLTRIM()
があります 関数とLTRIM_ORACLE()
働き。どちらの関数も基本的に同じことをします。ただし、わずかな違いがあります。
違い
違いは、各関数が空の文字列を処理する方法にあります。
-
LTRIM()
文字列から先頭のスペースを削除します。空の文字列が渡されると、結果はOracleモードであるかどうかによって異なります。 Oracleモードの場合、null
を返します。 。それ以外の場合は、空の文字列を返します。 -
LTRIM_ORACLE()
LTRIM()
のOracleモードバージョンの同義語です。 。LTRIM()
のように動作します Oracleモードの場合(null
を返します Oracleモードでない場合でも、空の文字列が渡された場合)。
したがって、LTRIM_ORACLE()
LTRIM()
とまったく同じように機能します Oracleモードの場合。ただし、Oracleモードでない場合の唯一の違いは、各関数が空の文字列を処理する方法です。
例
これは例で最もよく説明されています。
デフォルトモード
デフォルトモードでのこれらの機能の比較は次のとおりです。
SET SQL_MODE=DEFAULT;
SELECT
LTRIM(''),
LTRIM_ORACLE('');
結果:
+-----------+------------------+ | LTRIM('') | LTRIM_ORACLE('') | +-----------+------------------+ | | NULL | +-----------+------------------+
まず、システムをデフォルトモードに設定し(おそらくすでにデフォルトモードになっている場合でも)、次に両方の関数を空の文字列で実行しました。
LTRIM()
であることがわかります LTRIM_ORACLE()
が空の文字列を返しますが、 null
を返します 。
Oracleモード
次に、Oracleモードに設定して、コードを再度実行します。
SET SQL_MODE=ORACLE;
SELECT
LTRIM(''),
LTRIM_ORACLE('');
結果:
+-----------+------------------+ | LTRIM('') | LTRIM_ORACLE('') | +-----------+------------------+ | NULL | NULL | +-----------+------------------+
LTRIM()
であることがわかります LTRIM_ORACLE()
のように動作するようになりました 。
したがって、LTRIM()
を使用します 、OracleバージョンのLTRIM()
のように動作させる前に、明示的にOracleモードに切り替える必要があります。 。
LTRIM_ORACLE()
一方、すべてのモードで使用できるため、Oracleモードに切り替える必要がありません。