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() 文字列の各辺をトリミングするためのよりターゲットを絞った関数。これらの関数を使用すると、文字列から複数の文字を削除することもできます。