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 |
+----------------------+
示例
在下面的示例中,我们使用 FROM 子句在 TRIM() 函数内,并且使用此函数尝试从字符串 ‘ # hello .’ 中删除可能字符列表 ‘#., $ ^’ 。
SELECT TRIM( '#.,$^ ' FROM ' # hello .') AS Output;
输出
执行上述查询后,将产生以下输出 –
+--------------+
| Output |
+--------------+
| hello |
+--------------+
示例
使用 LEADING子句 ,您可以从字符串的开头删除指定的字符。
在下面的示例中,我们使用 LEADING和FROM子句 在 TRIM() 函数中删除指定字符 ‘#,$’ ,并从字符串的开头 ‘ # test this #.’ 开始。
SELECT TRIM(LEADING '#,$ ' FROM ' # test this #.') AS Result;
输出
上述语句产生以下输出 –
+-----------------+
| Result |
+-----------------+
| test this #. |
+-----------------+
示例
你也可以使用 TRAILING clause 从字符串的末尾删除指定的字符。
在这个示例中,我们使用 TRAILING 和 FROM clauses 在 TRIM() 函数中,从字符串的末尾删除指定的字符 ‘#,.!’ 。 ‘ # 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语句将 四个 记录插入到Customers表中 –
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 |
+----+------------+----------------+