Postgresql 如何在psql中以多列而不是匹配的regexp_匹配结果数组的形式返回?
目前我必须手动提取第n个paranthesized子表达式匹配项,并为Paranthesizes的数量复制正则表达式Postgresql 如何在psql中以多列而不是匹配的regexp_匹配结果数组的形式返回?,postgresql,Postgresql,目前我必须手动提取第n个paranthesized子表达式匹配项,并为Paranthesizes的数量复制正则表达式 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
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
像这样
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
你的预期结果是什么?你的预期结果是什么?是的,像这样。这是最常见的处理方式吗?我想“普通”是你需要做的事情的产物。这是从
regexp\u matches
函数中分割结果的典型方法,但您也可以将其分割为表格格式。我将用它更新我的示例。@bma您是否知道regexp\u匹配的替代解决方案是什么?我使用的是红移数据库,所以我只能使用REGEXP\u SUBSTR
,REGEXP\u COUNT
和REGEXP\u INSTR
函数。是的,像这样。这是最常见的处理方式吗?我想“普通”是你需要做的事情的产物。这是从regexp\u matches
函数中分割结果的典型方法,但您也可以将其分割为表格格式。我将用它更新我的示例。@bma您是否知道regexp\u匹配的替代解决方案是什么?我使用的是红移数据库,所以我只能使用REGEXP\u SUBSTR
、REGEXP\u COUNT
和REGEXP\u INSTR
函数。