假设我在postgres数据库中有一个名为pid
的列,如下所示:
set1/2019-10-17/ASR/20190416832-ASR.pdf
set1/2019-03-15/DEED/20190087121-DEED.pdf
set1/2021-06-22/DT/20210376486-DT.pdf
我想删除最后一个破折号“-”之后的所有内容,包括破折号本身。因此预期结果:
set1/2019-10-17/ASR/20190416832.pdf
set1/2019-03-15/DEED/20190087121.pdf
set1/2021-06-22/DT/20210376486.pdf
我已经研究了replace()和split_part()函数,但仍然不知道如何操作。请提供建议。
1条答案
按热度按时间ar7v8xwq1#
我们可以在这里使用正则表达式替换:
上面使用的正则表达式捕获
\1
中最后一个破折号之前的列值,以及\2
中的扩展名,然后使用\1\2
作为替换构建输出。这里有一个working regex demo。