在Postgres中使用REGEXP_REPLACE()中的长度函数

时间:2018-01-12 12:05:44

标签: sql postgresql

我正在删除字符串中的最后3个字符" ABC123"使用以下语句在Oracle中使用regexp_replace函数

select REGEXP_REPLACE('ABC123','123','', LENGTH('ABC123') - 3) from dual;

使用以下陈述可以在Postgres中实现相同的结果,

select regexp_replace('ABC123','[123]', '','g')
select translate('ABC123','123', '');

有没有什么方法可以像我在Oracle中使用的那样使用length函数进行替换?

2 个答案:

答案 0 :(得分:0)

为什么不简单地使用left()

select left('ABC123', length('ABC123') - 3)

同样的想法也可以在Oracle中使用,但您需要使用substr()函数。这在两个数据库中应该更有效。

答案 1 :(得分:0)

您还可以查看修剪功能。 http://www.postgresqltutorial.com/postgresql-trim-function/

“从双重选择REGEXP_REPLACE('ABC123','123','',LENGTH('ABC123') - 3);” 会成为 从双重中选择ltrim('ABC123','ABC'); 结果是123