postgresql - 在 PostgreSQL 中选择字符串的值

标签 postgresql postgresql-9.1

我的 PostgreSQL 表中有一个包含字符串值的列。

字符串看起来像这样:

'192.168.1.1-mike.landline,192.136.152-sam.phone,192.364.1.0-main-phone'

根据字符串,我如何选择逗号开始前的最后一个最大值。即 192.364.1.0-主电话

我试着查了一下,但到目前为止没有运气

最佳答案

使用函数regexp_replace()。

select regexp_replace('192.168.1.1-mike.landline,192.136.152-sam.phone,192.364.1.0-main-phone', '.*,', '');

     regexp_replace     
------------------------
 192.364.1.0-main-phone
(1 row) 

了解 POSIX Regular Expressions在文档中。


更新。您可以使用函数 rtrim() 修剪字符串结尾的逗号,例如:

select rtrim('some_string,', ',')

    rtrim    
-------------
 some_string
(1 row)

因此您的查询可能如下所示:

select regexp_replace(rtrim(the_string, ','), '.*,', '');

关于postgresql - 在 PostgreSQL 中选择字符串的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49618044/

相关文章:

Postgresql:每午夜 12 点执行一次查询

postgresql - Docker - 如何在 postgres 容器中运行 psql 命令?

mysql - Statement.RETURN_GENERATED_KEYS 是否会生成任何额外的往返行程来获取新创建的标识符?

postgresql,将列转换为没有rowid的标题

postgresql - 如何将 Pgadmin3 连接到 Virtualbox 机器上的数据库?

ruby-on-rails - 如何使用 rails 和 postgresql 将匹配记录保存为新记录并更新 user_id

sql - 有条件的聚合?

postgresql - 无法找到从未知到文本的转换函数

php - "no pg_hba.conf entry for host"但 "LOG: connection authorized"

postgresql - 如何在 PostgreSQL 上启用审计跟踪