0

我在“07960/WR”、“27163/WR”等列中有值。我需要从中选择所有数字。所以我创建了sql:

从...中选择 CAST (regexp_replace(object_index, '\D', '', 'g') as integer) 作为数字

没关系,但是当有人输入 [number] / <- slash / .... 例如:“99/27163/WR”

我的查询不起作用。

如何仅对值的最后 5 位使用 regexp_replace?

4

1 回答 1

1

我不了解 PostgreSQL,但在 RegexBuddy 的帮助下,我拼凑了一些希望可以工作的东西:

select CAST (REGEXP_REPLACE(object_index, $$(?p)^.*(\d{5})\D*$$$, $$\1$$, 'g') as integer) as number from ...

这个正则表达式的想法是匹配并捕获\d{5}字符串中的最后五位数字(即那些后面只有非数字: 的数字\D*$)并删除它们周围的所有内容。

于 2012-05-09T08:35:10.647 回答