九月 5, 2023
摘要:在本教程中,您将学习如何使用 PostgreSQL 的TRIM()
函数,从字符串中删除包含空格或特定字符的最长字符串。
目录
PostgreSQL TRIM 函数简介
TRIM()
函数从字符串中删除包含特定字符的最长字符串。默认情况下,如果您没有明确指定要删除的字符,TRIM()
函数将删除空格 (’ ‘)。
使用TRIM()
函数,您可以从字符串的开头、结尾或开头和结尾删除包含字符的最长字符串。请注意,字符串可以是以下任何数据类型:char、varchar 和 text。
当我们想要从数据库中的字符串中删除不需要的字符时,TRIM()
函数非常有用。我们经常用它来进行数据清理。
下面说明了TRIM()
函数的语法。
TRIM([LEADING | TRAILING | BOTH] [characters] FROM string)
例如,如果要删除字符串开头的空格,可以使用以下语法:
TRIM(LEADING FROM string)
TRIM()
函数的下面语法用于删除字符串末尾的所有空格。
TRIM(TRAILING FROM string)
要删除字符串开头和结尾的所有空格,请使用以下语法:
TRIM(BOTH FROM string)
或者用简化的方式:
TRIM(string)
PostgreSQL TRIM 函数示例
请查看以下从字符串中删除前导、尾随以及前导和尾随空格的示例。
SELECT
TRIM (
LEADING
FROM
' PostgreSQL TRIM'
),
TRIM (
TRAILING
FROM
'PostgreSQL TRIM '
),
TRIM (' PostgreSQL TRIM ');
以下语句使用不带前导空格和尾随空格的值更新示例数据库中customer
表的first_name
和last_name
列。它使用TRIM()
函数从first_name
和last_name
列中删除前导和尾随空格。
UPDATE customer
SET first_name = TRIM (first_name),
last_name = TRIM (last_name);
以下语句从数字中删除前导零 (0)。由于TRIM()
函数只接受字符串作为参数,因此我们必须使用类型转换将数字转换为字符串,然后再将其传递给TRIM()
函数。
SELECT
TRIM (
LEADING '0'
FROM
CAST (0009100 AS TEXT)
); -- 9100
PostgreSQL LTRIM、RTRIM 和 BTRIM 函数
PostgreSQL 为您提供了LTRIM
、RTRIM
和BTRIM
函数,它们是TRIM()
函数的较短版本。
LTRIM()
函数从字符串的开头删除所有字符(默认情况下为空格)。RTRIM()
函数从字符串末尾删除所有字符(默认情况下为空格)。BTRIM()
函数是LTRIM()
和RTRIM()
函数的组合。
LTRIM()
和RTRIM()
函数的语法如下:
LTRIM(string, [character]);
RTRIM(string, [character]);
BTRIM(string, [character]);
这相当于TRIM()
函数的以下语法:
TRIM(LEADING character FROM string); -- LTRIM(string,character)
TRIM(TRAILING character FROM string); -- RTRIM(string,character)
TRIM(BOTH character FROM string); -- BTRIM(string,character)
让我们看一下以下使用LTRIM()
、RTRIM()
和BTRIM()
函数从enterprise
字符串中删除字符e
的示例:
SELECT
LTRIM('enterprise', 'e');
SELECT
RTRIM('enterprise', 'e');
SELECT
BTRIM('enterprise', 'e');
从字符串中删除空白字符
有时,您的字符串可能包含您想要删除的空白字符,例如空格、制表符、换行符等。但是,TRIM()
函数仅允许您删除前导空格和尾随空格,而不是所有其他空白字符。您可以多次调用TRIM()
函数,但效率不高。
从字符串中删除前导和尾随空白字符的一种方法是使用REGEXP_REPLACE()
函数。例如,以下语句从字符串末尾删除一个空格和一个制表符,其中enterprise
字符串末尾有 1 个空格和 1 个制表符。
SELECT REGEXP_REPLACE('enterprise ', '\s+$', '');
模式\s+$
解释如下:
\s
:正则表达式类空白的简写。+
指 1 次或多次连续匹配。$
表示字符串的结尾。
如果要删除前导空白字符,请使用正则表达式^\s+
。
在本教程中,我们向您展示了如何使用TRIM()
、LTRIM()
、RTRIM()
和BTRIM
函数,从字符串的开头、结尾和两者中删除字符。
了解更多
PostgreSQL 教程:字符串函数
PostgreSQL 文档:字符串函数和操作符