如何在postgresql中修剪第3次出现前的记录?

我需要一个查询来获取postgresql中第三次出现’~’之后的字符串。

input:
1~2~3~4~5~6~7~8
7~8~22~99~1

Output:
4~5~6~7~8
99~1

解决方案:

我喜欢 “一匹无名马 “的答案。 但这里有另一种使用正则表达式的方法。

select regexp_replace(str, '^([^~]*[~]){3}$', '')
from (values ('1~2~3~4~5~6~7~8'), ('7~8~22~99~1')) v(str);

或者… regexp_matches():

select str, (regexp_matches(str, '^([^~]*[~]){3}(.*)$'))[2] as retval
from (values ('1~2~3~4~5~6~7~8'), ('7~8~22~99~1'), ('1~2')) v(str)

这里 是一个db<>提琴。

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何将pandas的startwith和IF结合起来?

2022-9-9 9:32:21

未分类

在php数组中添加更多元素

2022-9-9 9:43:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索