Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

TRIM (SQL)

指定された先頭や末尾の文字列を削除する文字列を返す、文字列関数です。

Synopsis

TRIM([end_keyword] [characters FROM] string-expression)

引数

引数 説明
end_keyword オプションstring-expression のどちら側の端部を削除するかを指定するキーワード。利用可能な値は LEADING、TRAILING、BOTH です。既定値は BOTH です。
characters

オプションstring-expression から削除する文字列を指定する文字列式。ここで指定されていない文字が出現するまで、指定された末尾から指定された文字のすべてのインスタンスが削除されます。したがって、TRIM(BOTH 'ab' FROM 'bbbaacaaa') は ‘c’ を返します。この例では、BOTH キーワードはオプションです。

characters を指定しない場合、TRIM は空白スペースを削除します。

characters を指定する場合、FROM キーワードが必要です。end_keyword が指定され、characters が指定されていない場合、FROM キーワードが許可されます (ただし必須ではない)。これらの引数のいずれも指定されていない場合、FROM キーワードは許可されません。

string-expression

削除される文字列式。string-expression は、列の名前、文字列リテラル、または他の関数の結果となります。基本データ型は、(CHAR や VARCHAR2 など) さまざまな文字タイプとして表示されます。

charactersend_keyword の両方が省略される場合、FROM キーワードは省略されます。

概要

TRIM は、指定値の最初および/または最後から指定された文字を削除します。文字の削除では、既定で大文字と小文字が区別されます。いずれかの端からの文字の削除は、characters で指定されていない文字が出現すると停止します。既定では、string-expression の両端から空白スペースを削除します。

TRIM は、削除される入力式のデータ型に関係なく、常に VARCHAR データ型を返します。

TRIM またはその他の SQL 関数に提供される前に、数値から先頭のゼロが自動的に削除されることに注意してください。先頭のゼロを保持するには、数値を文字列として指定する必要があります。

オプションの end_keyword 引数に利用可能な値は、以下のとおりです。

LEADING characters 内の文字が string-expression の先頭から削除されることを指定するキーワード。
TRAILING characters 内の文字が string-expression の末尾から削除されることを指定するキーワード。
BOTH characters 内の文字が string-expression の先頭と末尾の両方から削除されることを指定するキーワード。BOTH は既定で、end_keyword が指定されていない場合に使用されます。

代わりに、LTRIM を使用して先頭の空白を削除、あるいは RTRIM を使用して末尾の空白を削除することもできます。

文字列の先頭または末尾に空白またはその他の文字でパディングするには、LPAD または RPAD を使用します。

LENGTH 関数を使用すると、空白スペースが文字列から削除されているか、文字列に追加されているかを判断できます。

削除する文字

  • すべての文字 : TRIM は、charactersstring-expression 内のすべての文字を含む場合、空の文字列を返します。

  • 一重引用符 : TRIM は、一重引用符が charactersstring-expression の両方で二重になる場合、これらを削除できます。したがって、TRIM(BOTH 'a''b' FROM 'bb''ba''acaaa''') は ‘c’ を返します。

  • 空白スペース : TRIM は、characters が省略される場合、空白スペースを string-expression から削除します。characters が指定される場合、これは空白スペースを削除する空白スペース文字を含む必要があります。

  • %List : string-expression が %List である場合、TRIM は、先頭の文字ではなく、末尾の文字のみを削除できます。これは、%List には先頭のエンコーディング文字が含まれるためです。TRIM を先頭文字に適用するには、%List を文字列に変換する必要があります。

  • NULL : いずれかの文字列式が NULL の場合、TRIM は NULL を返します。

以下の例は、end_keyword および characters の既定を使用して、"abc" から先頭と末尾の空白を削除します。select-items は ‘^’ を文字列の両端に連結して、空白を示します。

SELECT '^'||'   abc   '||'^' AS UnTrimmed,'^'||TRIM('   abc   ')||'^' AS Trimmed

これは、文字列 ^ abc ^^abc^ を返します。

以下の例は、string-expression から先頭の空白スペースを削除するための有効なすべての構文です。

SELECT TRIM(LEADING '   abc   '),TRIM(LEADING FROM '   def   '),TRIM(LEADING ' ' FROM '   ghi   ')

以下の例は、文字列 "xxxabcxxx" の先頭から文字 "x" を削除して、"abcxxx" にします。

SELECT TRIM(LEADING 'x' FROM 'xxxabcxxx') AS Trimmed

以下の例は両方とも、文字列 "xxxabcxxx" の先頭と末尾から文字 "x" を削除し、"abc" にします。最初の例は、BOTH を指定し、2 番目の例は既定値として BOTH を取ります。

SELECT TRIM(BOTH 'x' FROM 'xxxabcxxx') AS Trimmed
SELECT TRIM('x' FROM 'xxxabcxxx') AS Trimmed

以下の例は、"abcxzzxyyyyz" という文字列から末尾の文字列 "xyz" の全インスタンスを削除し、"abc" という結果を出します。

SELECT TRIM(TRAILING 'xyz' FROM 'abcxzzxyyyyz') AS Trimmed

以下の例では、FirstName のすべての文字を削除して FullName を削除し、前に空白スペースが付いた姓を返します。例えば、FirstName/Fullname ‘Fred’/’Fred Rogers’ は ‘ Rogers’ を返します。この例では、FirstName ‘Annie’ は ‘Ann’、‘Anne’、‘Ani’、‘Ain’、‘Annee’、‘Annie’ を LastName から削除しますが、‘Anna’ は完全には削除しません。TRIM は大文字と小文字を区別するためです。‘A’ のみが削除され、‘a’ は削除されません。

SELECT TRIM(LEADING FirstName FROM FullName) FROM Sample.Person

以下の例は、FavoriteColors 値から先頭の文字 "B" または "R" を削除します。TRIM を先頭文字に適用するには、リストを文字列に変換する必要があります。

SELECT TOP 15 Name,FavoriteColors,
       TRIM(LEADING 'BR' FROM $LISTTOSTRING(FavoriteColors)) AS Trimmed
       FROM Sample.Person WHERE FavoriteColors IS NOT NULL

関連項目

FeedbackOpens in a new tab