SQL TRIM:如何從字串中移除不需要的字元

摘要:在本教學中,我們將向您介紹 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 子句之後。

第三,LEADINGTRAILINGBOTH 指定 TRIM 函數將從 source_string 的哪一側移除 trim_character

  • 如果您指定 LEADINGTRIM 函數將移除任何與 trim_character 相符的前導字元。
  • 如果您指定 TRAILINGTRIM 函數將移除任何與 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_namelast_nameemailphone_number 資料行中的所有前導和尾隨空格。

employees_table
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 函數從字串中移除不需要的字元。

這個教學對您有幫助嗎?