gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:11:09 26 4
gpt4 key购买 nike

以下 Oracle 代码的 Postgres 等价物是什么。

Select instr('abc de fgh',' ', -1) from dual;

返回:7

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

我想在 Postgres 中创建相同的逻辑,但位置和反向功能不起作用

最佳答案

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

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

split_part('abc de fgh', ' ', -1);

它返回 fgh

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

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

(string_to_array('abc de fgh', ' '))[cardinality(string_to_array('abc de fgh', ' '))] 

带有列引用的代码更短一些:

(string_to_array(country, ' '))[cardinality(string_to_array(country, ' '))] 

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

关于sql - 如何从PostgreSQL中的字符串中找到最后一个单词的起始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69926548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com