本記事では、ORACLEデータベースのSQLで空白(スペース)や0、特定の文字を削除する方法をサンプルを交えて詳しく解説をしております。
SELECT文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】SELECT文の書き方:サンプル多数あり
空白やスペースを削除する方法
空白(スペース)を削除する方法を2つ紹介します。
列の値の前後にある空白(スペース)を削除する方法
列の値の前後、つまり左端と右端にある空白(スペース)を削除するときはTRIM関数を使います。
TRIM関数は、指定した文字列を削除します。文字列を指定しない場合は空白を削除します。
次のSQLでは、COL1列の値の前後にある空白をTRIM関数を使って削除しています。
例えば列の値が’ te st ’という値の場合は、’te st’という値が返ってきます。列の値の間にある空白は削除されません。
SELECT TRIM(col1) FROM TAB1;
列の値の間にある空白(スペース)を削除する方法
列の間にある空白も全て削除したい場合は、REPLACE関数を使うと便利です。
REPLACE関数は、任意の文字列を置換することが出来ます。
次のSQLでは、COL1列の値にある空白を’’という空文字に置き換えることで実質的に削除しています。
例えば列の値が’ te st ’という値の場合は、’test’という値が返ってきます。
SELECT REPLACE(col1,' ','') FROM tab1;
0を削除する方法
列の値に含まれる0を削除したい場合は、REPLACE関数を使います。
次のSQLでは、置換する文字列に0を指定して、COL1列の値に含まれる0を’’という空文字に置き換えることで実質的に削除しています。
例えば、列の値が’0te0st0’という値の場合は、’test’という値が返ってきます。
SELECT REPLACE(col1,'0','') FROM tab1;
特定の文字を削除する方法
特定の文字を削除したい場合には、REPLACE関数を使います。
次のSQLでは、COL1列の値に含まれるsを’’という空文字に置き換えることで実質的に削除しています。
例えば、列の値が’test’という値の場合は、’tet’という値が返ってきます。
SELECT REPLACE(col1,'s','') FROM tab1;
同様に複数の文字を文字列として置換することもできます。
次のSQLでは、COL1列の値に含まれるstを’’という空文字に置き換えることで実質的に削除しています。
例えば、列の値が’stest’という値の場合は、’e’という値が返ってきます。
SELECT REPLACE(col1,'st','') FROM tab1;
まとめ
列の値の前後の空白やスペースはTRIM関数で削除できます。
列の値の中の空白やスペース、0、特定の文字を削除するにはREPLACE関数を使うと便利で分かりやすいです。
この他にも、SELECT文には様々な機能や使い方があります。
詳しくは「【SQL】SELECT文の書き方:サンプル多数あり」で解説していますのでぜひ参考にしてください。