SQL道場 文字列関数 TRIM関数
SQLで文字列から指定された文字を削除するTRIM関数について記載しています。
対応データベース:SQL Server MySQL Oracle PostgreSQL SQLite Access ANSI
TRIM関数の文法
SELECT TRIM(文字列) FROM テーブル
SELECT TRIM(削除する文字 FROM 対象文字列) FROM テーブル
SELECT TRIM(|LEADING | TRAILING | BOTH|削除する文字 FROM 対象文字列) FROM テーブル
引数 | 対象文字列 | 文字列型 |
削除する文字 | 文字型 | |
返値 | 文字列型 変換後の文字列が戻ります。 |
TRIM関数は文字列から指定文字を削除します。LEADINGは文字列の先頭から削除する場合に指定しますのでLTRIMと同様です。TRAILINGは文字列の末尾から削除する場合に指定しますのでRTRIM関数と同様です。BOTHは先頭と末尾の両方から削除する場合に指定するので、PostgreSQLのBTRM関数と同じです。
LEADING、TRAILING、BOTHのいずれも省略した場合はBOTHとみなされます。削除する文字を省略した場合は、半角スペースを削除します。全角スペースは削除されません。Accessでは文字列の先頭と末尾の両方から空白を削除します。LEADING、TRAILING、BOTH及びFROMの指定はできません。
MySQL
すべての remstr プリフィクスまたはサフィクスが削除された文字列 str を返します。 BOTH、LEADING、TRAILING のいずれの指定子も指定されない場合は、BOTH が指定されたとみなされます。remstr はオプションであり、指定されない場合は空白文字が削除されます。
https://dev.mysql.com/doc/refman/8.0/ja/string-functions.html#function_trim
SQLServer
文字列の先頭と末尾にあるスペース文字 または他の指定した文字を削除します。また、SQLServerでTRIMが対応しているのは、SQL Server 2017 (14.x)以降である。
LEADING、TRAILING、または BOTH キーワードを使うには、データベースの互換性レベルを 160 に設定する必要があります。
実行例
MySQLの実行例
WORKテーブルに格納されている文字列の両端から半角空白を削除します。
STR |
---|
abcdefg |
国語 |
国語 |
abcdefg |
/* SQLで文字列の両端から半角空白を削除するサンプル */
SELECT STR,TRIM(BOTH ' ' FROM STR) FROM testdb.WORK;
前方から指定の文字を削除します。
/* SQLで文字列の前方からx文字を削除するサンプル */
SELECT TRIM(LEADING 'x' FROM 'xxxxabcdefxxxx');
両端から指定の文字を削除します。
/* SQLで文字列の両端からx文字を削除するサンプル */
SELECT TRIM(BOTH 'x' FROM 'xabcdefx');
末尾から指定の文字を削除します。
/* SQLで文字列の末尾からx文字を削除するサンプル */
SELECT TRIM(TRAILING 'x' FROM 'xxxxabcdefxxxx');
SQLServerの実行例
/* SQLで文字列の両端から空白を削除するサンプル */
SELECT TRIM( ' test ') AS Result;
/* SQLで文字列の両端からx文字を削除するサンプル */
SELECT TRIM('x' FROM 'xxxxabcdefxxxx');