ORACLE対文字列脱スペース処理(trim)


原文リンク:原文リンク
まずこのTrim関数です.Trim関数には任意の指定文字を削除する機能があり、文字列の先頭と末尾のスペースを削除する機能はtrim関数が最も使用される頻度の高いものです.構文Trim(string)、パラメータstring:stringタイプ.先頭と末尾のスペースを削除する文字列戻り値Stringを指定します.関数の実行に成功するとstring文字列の先頭と末尾のスペースが削除された文字列が返され、エラーが発生した場合は空の文字列("")が返されます.パラメータ値がnullの場合、空のポインタ異常が放出されます.oracleではtrimが使用する形式はヒトrtrim()とltrim()の2種類が多く、それぞれ文字列の右のスペースを除去することと文字列の左のスペースを除去することである.
構文:trim([{{leading|trailing|both}[trim_character]|trim_character}from]trim_source
1)、いかなるパラメータも使用しない
SQL> select trim('   11   ') aa from dual;

AA

11

これは最も一般的な使用方法で、デフォルトのパラメータが使用され、デフォルトではTRIMは文字列の前後に現れるスペースを同時に削除します.
2)、bothパラメータを使用して、効果は方法がいかなるパラメータを使用しないことに等しい
SQL> select trim(both from ’ 11 ') aa from dual;
	AA

	11

「BOTH」パラメータは、文字列の前後で指定された内容を同時に削除することを示します(デフォルトではスペースを削除します).
3)、leadingとtrailingパラメータの使用
SQL> select trim(leading from '   11  ') aa from dual;

AA

11

SQL> select trim(trailing from '   11  ') aa from dual;

AA

 11

結果からスコアセパレータ'-'を選択すると、leadingパラメータを使用すると文字列の右端のスペースが除去され、trailingパラメータを使用すると文字列の左端のスペースが除去されることがわかります.Oracleが提供するrtrim()とltrim()のように.
4)、trim_を使うcharacterパラメータ
trim_characterパラメータは、「スペースの削除」のデフォルトの動作を変更します.文字列'xxxxWORLDxxxxx'の前後に表示される「x」を削除するには、「trim_character」パラメータが役立ちます.
SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

WORLD

trim_characterは、「both」、「trailing」、「leading」の3つのパラメータを組み合わせて、以前のプレゼンテーションと同様に効果を発揮します.結果を見て、言うまでもない.
SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

WORLD

SQL> select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

WORLD

SQL> select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

xxxxWORLD

SQL> select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

WORLDxxxx

ここで、「trim_character」パラメータには1文字のみが許可されており、複数文字はサポートされていません.trimはマルチ文字除去の要件を満たすことはできませんが、rtrimとltrimを使用して処理することができます.
1)rtrimの使用
SQL> select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA

ORxxxxWORLDxxxx

2)ltrimの使用
SQL> select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA

xxxxWORLDxxxxOR

3)RTRIMとLTRIM関数を併用して我々の目的を達成する
SQL> select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from dual;

AAAAA

xxxxWORLDxxxx

rtrimとltrim関数を使用する場合の注意事項:「OR」は、「OR」文字列全体を一致させるのではなく、任意の文字「O」または文字「R」が削除操作されていることがわかります.
trim関数の応用について紹介しますが、replace関数を紹介します.個人的にはreplace関数はスペースを取るときに使いやすいと思います.replace関数は、最初の文字列式に現れる2番目の与えられた文字列式を3番目の式で置き換えます.replace関数の構文説明を見てみましょう.replace(‘string_replace 1’,‘string_replace 2’,‘string_replace 3’)
‘string_replace 1'検索する文字列式、string_replace 1は、文字データまたはバイナリデータであってもよい.
‘string_replace 2’検索する文字列式、string_replace 2は、文字データまたはバイナリデータであってもよい.
‘string_replace 3’置換用の文字列式、string_replace 3は、文字データまたはバイナリデータであってもよい.
戻りタイプstring_replace(1、2または3)がサポートされている文字データ型の1つである場合、文字データが返されます.string_replace(1、2または3)は、サポートされているbinaryデータ型の1つであり、バイナリデータを返します.
ここでは、スペースを取ることを例に挙げます.
SQL> select replace('   aa  kk  ',' ','') abcd from dual;

ABCD

aakk

trim関数を用いた結果と比較して,replace関数を用いると文字列の両端のスペースだけでなく,文字列内部のスペースも除去できることが分かった.
もちろん、文字列の両端のスペースを除去するだけでtrim関数を使用すると効率が向上します.