摘要:在本教學中,我們將向您介紹 SQL TRIM 函數,它可以從字串中移除前導和尾隨字元。
SQL TRIM 函數介紹
TRIM
函數允許您從字串中修剪前導和/或尾隨字元。以下顯示 TRIM
函數的語法。
TRIM([LEADING | TRAILING | BOTH] trim_character FROM source_string);
Code language: SQL (Structured Query Language) (sql)
首先,指定 trim_character
,即 TRIM
函數將要移除的字元。如果您未指定 trim_character
,則 TRIM
函數將從來源字串中移除空格。
其次,將 source_string
放在 FROM
子句之後。
第三,LEADING
、TRAILING
和 BOTH
指定 TRIM
函數將從 source_string
的哪一側移除 trim_character
。
- 如果您指定
LEADING
,TRIM
函數將移除任何與trim_character
相符的前導字元。 - 如果您指定
TRAILING
,TRIM
函數將移除任何與trim_character
相符的尾隨字元。 - 如果您指定
BOTH
或三者皆無,則TRIM
函數將移除與trim_characters
相符的前導和尾隨字元。
如果 trim_character
或來源字串為 NULL
,則 TRIM 函數會傳回 NULL
。
SQL TRIM 範例
假設我們有一個字串,其中包含字串開頭的兩個空格和字串結尾的一個空格 (' SQL '
)。該字串的長度為六。
SELECT LENGTH(' SQL ');
Code language: SQL (Structured Query Language) (sql)
length
--------
6
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下陳述式使用帶有 LEADING
選項的 TRIM
函數來移除字串的所有前導空格。
SELECT TRIM(LEADING FROM ' SQL ');
trim
-------
SQL
(1 row)
Code language: SQL (Structured Query Language) (sql)
您可以使用 LENGTH 函數來測試。結果字串的長度必須為四,因為 TRIM
函數會移除字串開頭的兩個空格。
SELECT LENGTH(TRIM(LEADING FROM ' SQL '));
LENGTH
--------
4
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下陳述式使用帶有 TRAILING
選項的 TRIM
函數來移除字串的所有尾隨空格。
SELECT TRIM(TRAILING FROM ' SQL ');
trim
-------
SQL
(1 row)
Code language: SQL (Structured Query Language) (sql)
字串的長度必須為五,因為 TRIM
函數會移除字串結尾的一個空格。
SELECT LENGTH(TRIM(TRAILING FROM ' SQL '));
length
--------
5
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下陳述式移除字串的前導和尾隨空格。
SELECT TRIM(' SQL ');
trim
-------
SQL
(1 row)
Code language: SQL (Structured Query Language) (sql)
當然,結果字串的長度必須為三。
SELECT LENGTH(TRIM(' SQL '));
length
--------
3
(1 row)
Code language: SQL (Structured Query Language) (sql)
由於 trim_character 為 '0',因此以下陳述式移除字串的前導零。
SELECT TRIM(LEADING '0' FROM '00001900');
Code language: SQL (Structured Query Language) (sql)
trim
-------
1900
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下陳述式移除字串的前導和尾隨 @
。
SELECT TRIM('@' FROM '@2000@');
Code language: SQL (Structured Query Language) (sql)
trim
-------
2000
(1 row)
Code language: SQL (Structured Query Language) (sql)
有時,當使用者提交包含名字、姓氏、電子郵件、電話等輸入欄位的表單時,資料可能包含前導和/或尾隨空格。在插入或更新資料庫之前,您需要驗證並移除空格。如果您不這樣做,資料將不乾淨,導致使用 WHERE
子句時的匹配不正確。
如果您需要清理資料,您可以使用 UPDATE
陳述式以及 TRIM
函數來移除資料庫中所有不需要的字元,特別是空格。
例如,以下陳述式移除 employees
表格中 first_name
、last_name
、email
和 phone_number
資料行中的所有前導和尾隨空格。

UPDATE employees
SET
first_name = TRIM(first_name),
last_name = TRIM(last_name),
email = TRIM(email),
phone_number = TRIM(phone_number);
Code language: SQL (Structured Query Language) (sql)
在本教學中,您已學習如何使用 SQL TRIM
函數從字串中移除不需要的字元。