我的 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/