gpt4 book ai didi

postgresql - 如何在 psql 中返回多列而不是匹配的 regexp_matches 结果数组?

转载 作者:行者123 更新时间:2023-11-29 14:22:20 24 4
gpt4 key购买 nike

目前我必须手动提取 nth paranthesized 子表达式匹配,并为 parantheses 的数量复制正则表达式,

SELECT regexp_matches(col2, '(\d)(\d)(\d)')[1], 
regexp_matches(col2, '(\d)(\d)(\d)')[2],
regexp_matches(col2, '(\d)(\d)(\d)')[3]
FROM tab;

我想手动方式效率很低。

有没有办法将结果数组自动分解为多列?如果模式的第 n 个带括号的子表达式不匹配,则返回 null?

最佳答案

像这样?

select res[1] val1, res[2] val2
from (SELECT regexp_matches(col2, '(bar)(beque)') res FROM tab) y;

val1 | val2
------+-------
bar | beque

拆分为表格格式:

select unnest(res) as tabular
from (SELECT regexp_matches(col2, '(bar)(beque)') res FROM tab) y;

tabular
--------
bar
beque

关于postgresql - 如何在 psql 中返回多列而不是匹配的 regexp_matches 结果数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com