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
广告