数组 – 从Postgres字符串获取最后一个字,以声明方式

这个问题的[编辑]原始标题是“获取Postgres数组的最后一个元素,以声明方式”

如何获取Postgres中数组的最后一个元素?

我需要以声明方式做,因为我想使用它作为ORDER BY标准.我不想为它创建一个特殊的PGsql函数,在这种情况下对数据库的更改越少越好.

事实上,我想做的是按照包含多个单词的特定列的最后一个单词排序.改变模型不是一个选择.

换句话说,我想推送Ruby的sort_by {| x | x.split [-1]}到数据库级别.我可以用Postgres string_to_array或regexp_split_to_array函数将值分割成数组,然后如何获取最后一个元素?

如果我正确地理解你的问题,你有一个字符串,你首先在某个分隔符上拆分它,然后找到数组的最后一个元素,并丢弃其余的元素.

你可以错过中间人,直接得到最后一个元素:

SELECT regexp_replace('foo bar baz','^.* ','')

结果:

baz

相关文章

来源:http://www.postgres.cn/docs/11/ 4.1.1. 标识符和关键词 SQL标识符和关键词必须以一个...
来源:http://www.postgres.cn/docs/11/ 8.1. 数字类型 数字类型由2、4或8字节的整数以及4或8...
来源:http://www.postgres.cn/docs/11/ 5.1. 表基础 SQL并不保证表中行的顺序。当一个表被读...
来源:http://www.postgres.cn/docs/11/ 6.4. 从修改的行中返回数据 有时在修改行的操作过程中...
来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是PostgreSQL中的...
来源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三种独立的实现模式匹...