首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PostgreSQL中找到字符串中最后一个单词的起始位置

如何在PostgreSQL中找到字符串中最后一个单词的起始位置
EN

Stack Overflow用户
提问于 2021-11-11 10:14:59
回答 1查看 77关注 0票数 2

下面来自Oracle的代码的Postgres等价物是什么?

代码语言:javascript
复制
Select instr('abc de fgh',' ', -1) from dual;

返回:7

原码:substr(country, instr(country,' ', -1)+1);

我想在Postgres中创建相同的逻辑,但位置和反转函数不起作用

EN

回答 1

Stack Overflow用户

发布于 2021-11-11 10:21:26

显然,您想要字符串中的最后一个元素,其中的元素由空格字符分隔。

如果您使用的是Postgres 14,则可以使用:

代码语言:javascript
复制
split_part('abc de fgh', ' ', -1);

它返回fgh

或者使用列引用:split_part(country, ' ', -1)

在早期版本中,split_part()不允许负偏移量,因此您需要一些不同的东西:

代码语言:javascript
复制
(string_to_array('abc de fgh', ' '))[cardinality(string_to_array('abc de fgh', ' '))] 

使用列引用会稍微短一点:

代码语言:javascript
复制
(string_to_array(country, ' '))[cardinality(string_to_array(country, ' '))] 

这首先将字符串转换为数组,然后选择数组的最后一个元素(该元素是使用返回数组长度的cardinality()函数确定的)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69926548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档