SQL TRIM(), RTRIM(), LTRIM() Function 函數

SQL 的 TRIM() 函數是用來刪除字串的頭 (leading) 或尾 (trailing) 的字元,常用來移除字首或字尾的空白字元 (whitespace)。

TRIM() 移除前後空白字元

MySQL

語法 (syntax)

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)

TRIM() 會返回一個新的字串,其中:

  • str 是要處理的字串 (欄位名稱)
  • remstr 是你要刪除的字元,如果沒有指定,預設是刪除掉空白字元
  • LEADING, TRAILING, BOTH 用來指定要刪除開頭的字元、結尾的字元或頭尾都刪除,預設值是 BOTH

用法範例 (Example)

刪除前後空白:

SELECT TRIM('  bar   ');
'bar'

刪除字串開頭的 x:

SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
'barxxx'

刪除字串前後的 x (BOTH 可以省略):

SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
'bar'

刪除字尾的 xyz:

SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
'barx'

SQL Server

語法 (syntax)

TRIM([ characters FROM ] string) 

TRIM() 會返回一個新的字串,其中:

  • string 是要處理的字串
  • characters 是說你要刪除字串前後的這些字元,預設是刪除掉空白字元

用法範例 (Example)

刪除前後空白:

SELECT TRIM( '     test    ') AS Result;
'test'

指定刪除字串前後的某些字元:

SELECT TRIM( '.,! ' FROM  '#     test    .') AS Result;
'#     test'

Oracle PL/SQL

語法 (syntax)

TRIM([ [ LEADING | TRAILING | BOTH ] trim_character FROM ] trim_source)

TRIM() 會返回一個新的字串,其中:

  • trim_source 是要處理的字串
  • trim_character 是你要刪除的字元,如果沒有指定,預設是刪除掉空白字元。注意:trim_character 只能是單個字元
  • LEADING, TRAILING, BOTH 用來指定要刪除開頭的字元、結尾的字元或頭尾都刪除,預設值是 BOTH

用法範例 (Example)

刪除前後空白:

TRIM('  bar   ')
'bar'

刪除開頭的 0:

TRIM(LEADING '0' FROM '000bar')
'bar'

刪除結尾的 1:

TRIM(TRAILING '1' FROM 'bar1')
'bar'

刪除前後的 1:

TRIM(BOTH '1' FROM '123bar111')
Result: '23bar'

RTRIM() 移除字串右側的空白字元 (remove trailing spaces)

MySQL

語法 (syntax)

RTRIM(str)

用法範例 (Example)

刪除字串結尾空白:

SELECT RTRIM('barbar   ');
'barbar'

SQL Server

語法 (syntax)

RTRIM(str)  

用法範例 (Example)

刪除字串結尾空白:

SELECT RTRIM('Removes trailing spaces.   ');
'Removes trailing spaces.'

Oracle PL/SQL

語法 (syntax)

RTRIM(char [, trim_character_set])

用法範例 (Example)

刪除字串結尾空白:

RTRIM('barbar   ')
'barbar'

除了空白,Oracle PL/SQL 還可以指定哪些結尾字元是要被刪除的:

RTRIM('123000', '0')
'123'

RTRIM('bar6372', '0123456789')
'bar'

LTRIM() 移除字串左側的空白字元 (remove leading spaces)

MySQL

語法 (syntax)

LTRIM(str)

用法範例 (Example)

刪除字串開頭的空白:

SELECT LTRIM('  barbar');
'barbar'

SQL Server

語法 (syntax)

LTRIM(str)  

用法範例 (Example)

刪除字串開頭空白:

SELECT LTRIM('   Removes leading spaces.');
'Removes leading spaces.'

Oracle PL/SQL

語法 (syntax)

LTRIM(char [, trim_character_set])

用法範例 (Example)

刪除字串開頭的空白:

LTRIM('  barbar')
'barbar'

除了空白,Oracle PL/SQL 還可以指定哪些開頭字元是要被刪除的:

LTRIM('000123', '0')
'123'

LTRIM('6372bar', '0123456789')
'bar'