我从列中提取子字符串时遇到问题。
我需要提取一个数字,该数字介于两个字符串之间:<=>
和level[highlighted]
我使用过这样的东西:
split_part(SPLIT_PART(mycolumn, '<=>', 2), '<br>level[highlighted]', 1)
但是有一个问题,因为字符串<=>
在一行中被多次包含(但字符串<br>level[highlighted]
在每一行中只有一次)。
答案 0 :(得分:0)
您可以使用正则表达式来匹配和提取数据:
<强>的Postgres 强>
with _t as (
select 'foo<=>bar<=>123<br>level[highlighted]'::text as col
)
select
substring(col, '<=>(\d+)<br>level\[highlighted\]')
from
_t
;
其中(\d+)
是(1个或更多)数字的匹配组;结果将是:
substring
-----------
123
(1 row)
<强>红移强>
使用regexp_substr()
可以获得类似的结果。