[编辑]这个问题的原始标题是“以声明方式获取 Postgres 数组的最后一个元素”
Postgres中如何获取数组的最后一个元素?
我需要以声明方式执行此操作,因为我想将其用作 ORDER BY 标准。我不想为它创建一个特殊的 PGSQL 函数,在这种情况下对数据库的更改越少越好。
事实上,我想做的是按包含多个单词的特定列的最后一个单词进行排序。此处无法更改模型。
换句话说,我想推动Ruby的sort_by {|x| x.split[-1]}
进入数据库级别。我可以使用 Postgres 将一个值拆分为单词数组string_to_array
or regexp_split_to_array
函数,那么如何获取它的最后一个元素呢?
如果我正确理解你的问题,你有一个字符串,你首先将它分割在某个分隔符上,然后找到数组的最后一个元素并丢弃其余元素。
您可能会错过中间人并直接获取最后一个元素:
SELECT regexp_replace('foo bar baz', '^.* ', '')
Result:
baz
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)