Oracleでは、TRIM()
関数を使用すると、文字列の側面から文字をトリミングできます。
先頭の文字、末尾の文字、またはその両方をトリミングできます。
デフォルトでは空白をトリミングしますが、オプションで別の1つまたは複数の文字を指定してトリミングすることができます。
構文
構文は次のようになります:
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
両方のtrim_character
およびtrim_source
VARCHAR2
にすることができます または、VARCHAR2
に暗黙的に変換できる任意のデータ型 。
例
簡単な例を次に示します。
SELECT TRIM('.' FROM '...Cat...')
FROM DUAL;
結果:
TRIM('.'FROM'...CAT...') ___________________________ Cat
この場合、指定された文字(.
)文字列の両側から削除されました。
どちら側から削除するかを指定しなかったため、両側から削除されました。
BOTH
を含めることで同じ結果を得ることができます キーワード:
SELECT TRIM(BOTH '.' FROM '...Cat...')
FROM DUAL;
結果:
TRIM(BOTH'.'FROM'...CAT...') _______________________________ Cat
主人公のトリム
ここでも、先頭の文字のみが削除されています:
SELECT TRIM(LEADING '.' FROM '...Cat...')
FROM DUAL;
結果:
TRIM(LEADING'.'FROM'...CAT...') __________________________________ Cat...
トリムトレーリングキャラクター
そして、ここでは末尾の文字のみが削除されています:
SELECT TRIM(TRAILING '.' FROM '...Cat...')
FROM DUAL;
結果:
TRIM(TRAILING'.'FROM'...CAT...') ___________________________________ ...Cat
デフォルトの文字
この例では、トリミングする文字を指定していないため、空白をトリミングします。
SELECT TRIM(' Cat ')
FROM DUAL;
結果:
TRIM('CAT') ______________ Cat
両側から空白をトリミングするときの効果を確認するのはそれほど簡単ではありません。
両側から空白が削除されたことを簡単に確認できる別の例を次に示します。
SELECT
'My' || ' Fat ' || 'Cat',
'My' || TRIM(' Fat ') || 'Cat'
FROM DUAL;
結果:
'MY'||'FAT'||'CAT' 'MY'||TRIM('FAT')||'CAT' _____________________ ___________________________ My Fat Cat MyFatCat
数字
文字列とトリム文字はVARCHAR2
にすることができます または、VARCHAR2
に暗黙的に変換できる任意のデータ型 、次のような数値を渡すことができます。ただし、戻り値はVARCHAR2
です。 。
SELECT TRIM(LEADING 0 FROM 007)
FROM DUAL;
結果:
TRIM(LEADING0FROM007) ________________________ 7
ここでは、別の番号がトリミングされています:
SELECT TRIM(LEADING 1 FROM 117)
FROM DUAL;
結果:
TRIM(LEADING1FROM117) ________________________ 7
ヌル値
文字列またはトリム文字のいずれかがnull
の場合 結果はnull
です :
SET NULL 'null';
SELECT
TRIM(null FROM '...Cat...'),
TRIM(BOTH FROM null),
TRIM(null FROM null)
FROM DUAL;
結果:
TRIM(NULLFROM'...CAT...') TRIM(BOTHFROMNULL) TRIM(NULLFROMNULL) ____________________________ _____________________ _____________________ null null null
デフォルトでは、SQLclおよびSQL * Plusは、null
の場合は常に空白を返します。 SQL SELECT
の結果として発生します 声明。
ただし、SET NULL
は使用できます 返される別の文字列を指定します。ここでは、文字列null
を指定しました 返却する必要があります。
空の文字列のトリミング
トリム文字として空の文字列を渡すと、null
になります :
SET NULL 'null';
SELECT TRIM('' FROM ' Cat')
FROM DUAL;
結果:
TRIM(''FROM'CAT') ____________________ null
ただし、空の文字列に1つのスペースを追加すると、それが変更され、文字列から空白スペースが削除されます。
SET NULL 'null';
SELECT TRIM(' ' FROM ' Cat')
FROM DUAL;
結果:
TRIM(''FROM'CAT') ____________________ Cat
引数の数が正しくありません
TRIM()
の呼び出し 引数を渡さないとエラーが返されます:
SELECT TRIM()
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT TRIM() FROM DUAL Error at Command Line : 1 Column : 13 Error report - SQL Error: ORA-00936: missing expression 00936. 00000 - "missing expression" *Cause: *Action:
また、間違った数の引数を渡すと、エラーが発生します:
SELECT TRIM(' Cat ', 2)
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT TRIM(' Cat ', 2) FROM DUAL Error at Command Line : 1 Column : 20 Error report - SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis" *Cause: *Action:
RTRIM()
も参照してください およびLTRIM()
文字列の各辺をトリミングするためのよりターゲットを絞った関数。これらの関数を使用すると、文字列から複数の文字を削除することもできます。