トップDML文字列関数 ≫ 文字列の左端や右端にある特定の文字を削除する

文字列の左端や右端にある特定の文字を削除する

文字列の左端や右端にある特定の文字を削除するにはTRIM関数を使用します.TRIM関数というと文字列の左右の空白を削除するイメージが強いですが,SQL92/99に既定されているTRIM関数は空白だけでなく,指定した文字を削除する機能も備えています.したがってSQL92/99に準拠したTRIM関数をサポートしているDBMSであればこの関数を利用すればよいことになります.以下に各DBMSのTRIM関数のサポート状況を示します.

DBMSTRIM
Access使用不可能.左右の空白を削除する機能のみサポート
SQLServer使用不可能.(対応していない)
Oracle使用可能.SQL92/99準拠
MySQL使用可能.SQL92/99準拠
PostgreSQL使用可能.SQL92/99準拠

ここでは実際に例を挙げてTRIM関数を説明します.

TRIMによる特定文字の除去

TRIM関数を用いて文字列の左右の特定文字を削除するには以下のようになります.

SQL

SELECT TRIM('X' FROM 'XXチャーリーXX')

もしくは

SELECT TRIM(BOTH 'X' FROM 'XXチャーリーXX')

SQLの結果

SELECT TRIM('X' FROM 'XXチャーリーXX')
チャーリー

上記の例では文字列の左右にある'X'という文字を除去しています.

LEADINGオプションを使用することで左端の文字だけを削除することができます.

SQL

SELECT TRIM(LEADING 'X' FROM 'XXチャーリーXX')

SQLの結果

SELECT TRIM(LEADING 'X' FROM 'XXチャーリーXX')
チャーリーXX

また,TRAILINGオプションを使用することで右端の文字だけを削除することができます.

SQL

SELECT TRIM(TRAILING 'X' FROM 'XXチャーリーXX')

SQLの結果

SELECT TRIM(TRAILING 'X' FROM 'XXチャーリーXX')
XXチャーリー

SQL サンプル

例として以下のテーブルの部署名の左端の空白を除去して取得します.

部署

部署コード部署名
A0001人事部
A0002総務部
A0003財務部
A0004営業部

SQL

SELECT 部署コード, TRIM(TRAILING '' FROM 部門名) AS 部門
FROM 部署

SQLの結果

部署コード部署名
A0001人事
A0002総務
A0003財務
A0004営業