【发布时间】:2015-11-22 21:08:14
【问题描述】:
我有一个来自 PGSQL 数据库的值列表,看起来像这样:
198
199
1S
2
20
997
998
999
C1
C10
A
我希望将此字段解析为单个组件,我认为这将在我的 SQL 中使用两个 regexp_replace 函数。本质上,任何出现在数字之前的非数字字符都需要为一列返回,而另一列将显示所有出现在数字之后的非数字字符。
上面的列表会根据 PG 的结果被拆分成这个布局:
我创建了一个函数,该函数去除非数字字符(最后一列)并将其转换为整数,但我无法找出正则表达式来返回数字之前的字符串值,或者找到的那些在数字之后。
到目前为止,凭借我不存在的正则表达式知识,我所能想到的就是:regexp_replace(fieldname, '[^A-Z]+', '', 'g'),它只是去掉了任何不是 A-Z 的东西,但我不能;不能在数字之前使用字符串值,或在它们之后。
【问题讨论】:
-
请编辑您的问题以包含您目前编写的代码。
-
到目前为止,我能想出的只有我几乎不存在的正则表达式知识,是这样的:
regexp_replace(fieldname, '[^A-Z]+', '', 'g'),它只是去掉了任何不是 A-Z 的东西
标签: sql regex postgresql