- 类别:
:doc:`/sql-reference/functions-string`(通用)
TRIM¶
从字符串中移除前导和尾随字符。
备注
要移除字符串中的字符,可以使用 REPLACE 函数。
- 另请参阅:
语法¶
TRIM( <expr> [, <characters> ] )
实参¶
返回¶
此函数返回 VARCHAR 数据类型的值或 NULL 值。如果任一实参为 NULL,则返回 NULL。
使用说明¶
您可以按任意顺序指定
characters
中的字符。在
characters
中的' '
规范不会移除其他空白字符(如制表符、行结束符等)。明确指定这些字符才能移除它们。
要移除空格,实参中必须明确包含字符。例如,
' $.'
从输入字符串中移除所有前导和尾随空格、美元符号和句点。
排序规则详细信息¶
当省略可选的第二个实参,或该实参仅包含恒定的空白时,支持:doc:排序规则 </sql-reference/collation>
。
返回值的排序规则规范与第一个实参的排序规则规范相同。
示例¶
从字符串中移除前导和尾随的 *
与 -
字符:
SELECT '*-*ABC-*-' AS original,
TRIM('*-*ABC-*-', '*-') AS trimmed;
+-----------+---------+
| ORIGINAL | TRIMMED |
|-----------+---------|
| *-*ABC-*- | ABC |
+-----------+---------+
从字符串中移除尾随的新行。此示例使用 CONCAT 函数将字符串放在 >
和 <
字符内,帮助您可视化空格。
SELECT CONCAT('>', CONCAT('ABC\n', '<')) AS original,
CONCAT('>', CONCAT(TRIM('ABC\n', '\n'), '<')) AS trimmed;
+----------+---------+
| ORIGINAL | TRIMMED |
|----------+---------|
| >ABC | >ABC< |
| < | |
+----------+---------+
从字符串中移除前导和尾随空格。此示例将字符串放在 >
和 <
字符内,帮助您可视化空格。它还显示函数为 NULL 输入返回 NULL。
CREATE OR REPLACE TABLE test_trim_function(column1 VARCHAR);
INSERT INTO test_trim_function VALUES (' Leading Spaces'), ('Trailing Spaces '), (NULL);
SELECT CONCAT('>', CONCAT(column1, '<')) AS original_values,
CONCAT('>', CONCAT(TRIM(column1), '<')) AS trimmed_values
FROM test_trim_function;
+---------------------+-------------------+
| ORIGINAL_VALUES | TRIMMED_VALUES |
|---------------------+-------------------|
| > Leading Spaces< | >Leading Spaces< |
| >Trailing Spaces < | >Trailing Spaces< |
| NULL | NULL |
+---------------------+-------------------+