SQL - TRIM() 函式



SQL 的TRIM()函式用於移除字串中的空格。

它返回一個新的字串,透過從給定字串的開頭、結尾或兩端移除所有空格或其他指定的字元。

注意 - 預設情況下,TRIM()函式會移除字串開頭和結尾的空格字元。

TRIM()函式接受一個字串作為引數,你需要修剪它以及一個可選的字串,表示要移除的字首字尾。如果你將可選引數作為引數傳遞給此函式,它將從給定字串中移除前導、尾隨或兩者。你必須在兩個引數之間使用FROM 子句

例如,如果你傳遞'$'作為可選引數,此函式將移除所有前導和尾隨美元符號。

可選引數指定要修剪字串的哪一側 -

  • BOTH - 它移除從字串開頭和結尾指定的字元(預設位置行為)。
  • LEADING - 它移除從字串開頭指定的字元。
  • TRAILING - 它移除從字串結尾指定的字元。

語法

以下是 SQL TRIM()函式的語法 -

TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )
Or
TRIM ( [ characters FROM ] string )
Or
TRIM ( string )

引數

  • str - 需要修剪的字串。

返回值

此函式返回一個已修剪的字串。

示例

在以下示例中,我們使用 SQL TRIM()函式從字串' hello '的兩側移除空格。

SELECT TRIM('    hello   ');

輸出

以下是上述查詢的輸出 -

+----------------------+
| TRIM('    hello   ') |
+----------------------+
| hello                |
+----------------------+

示例

在以下示例中,我們在TRIM()函式內部使用FROM 子句,並使用此函式嘗試從字串' # hello .'中移除可能的字元列表' #.,$^ '

SELECT TRIM( '#.,$^ ' FROM '     #     hello    .') AS Output;

輸出

執行上述查詢後,將產生以下輸出 -

+--------------+
| Output       |
+--------------+
| hello        |
+--------------+

示例

使用LEADING 子句,你可以移除從字串開頭指定的字元。

在以下示例中,我們在TRIM()函式內部使用LEADING 和 FROM 子句,以從字串' # test this #.'的開頭移除指定的字元'#,$ '

SELECT TRIM(LEADING '#,$ ' FROM  '     #     test this    #.') AS Result;

輸出

以上語句產生以下輸出 -

+-----------------+
| Result          |
+-----------------+
| test this    #. |
+-----------------+

示例

你還可以使用TRAILING 子句移除從字串結尾指定的字元。

在此示例中,我們在TRIM()函式內部使用TRAILING 和 FROM 子句,以從字串' # test this #'的結尾移除指定的字元'#,.!'

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

輸出

以下是上述查詢的輸出 -

+----------------------+
| Result               |
+----------------------+
|      #     test this |
+----------------------+

示例

使用BOTH 子句,你可以移除從字串開頭和結尾指定的字元。

SELECT TRIM(BOTH '##$' FROM '##$12345##$') AS Result;

輸出

執行上述查詢後,將產生以下輸出 -

+--------+
| Result |
+--------+
| 12345  |
+--------+

示例

你還可以將表列作為引數傳遞給TRIM()函式,以從列的內容中移除所有空格。假設我們使用CREATE語句建立了一個名為Customers的表,如下所示 -

CREATE TABLE CUSTOMERS(    
ID INT NOT NULL,    
FIRST_NAME VARCHAR (20),
LAST_NAME VARCHAR(20),
AGE INT NOT NULL,    
ADDRESS CHAR (25) ,    
SALARY DECIMAL (18, 2));

現在讓我們使用INSERT語句在客戶表中插入條記錄,如下所示 -

INSERT INTO CUSTOMERS VALUES (1, 'Ramesh','KUMAR', 32, 'Ahmedabad', 2000.00 ); 
INSERT INTO CUSTOMERS VALUES (2, 'Khilan','Verma', 25, 'Delhi', 1500.00 ); 
INSERT INTO CUSTOMERS VALUES (3, 'kaushik','Gupta', 23, 'Kota', 2000.00 ); 
INSERT INTO CUSTOMERS VALUES (4, 'Chaitali','Pal', 25, 'Mumbai', 6500.00 );

以下 SQL 查詢將移除Customers表中LAST_NAME列值的開頭和結尾的所有空格實體 -

SELECT ID, FIRST_NAME, TRIM(LAST_NAME) AS TRIM_LAST_NAME FROM CUSTOMERS;

輸出

以下是上述查詢的輸出 -

+----+------------+----------------+
| ID | FIRST_NAME | TRIM_LAST_NAME |
+----+------------+----------------+
|  1 | Ramesh     | KUMAR          |
|  2 | Khilan     | Verma          |
|  3 | kaushik    | Gupta          |
|  4 | Chaitali   | Pal            |
+----+------------+----------------+
sql-string-functions.htm
廣告

© . All rights reserved.