匹配数字范围,如10..15A..20

时间:2015-12-09 07:04:32

标签: regex postgresql

我的数据库中的值如下

1 
2 
2A 
.......
10
10A
.......
250A
......
300

我需要找到1-10,11-20,.... 291-300

范围内的记录

无法弄清楚如何执行此操作,因为数字后面有字符

我正在使用postgres db,所以我可以在db

上应用正则表达式查询

1 个答案:

答案 0 :(得分:1)

您可以使用:

SUBSTRING(mycolumn FROM '^[0-9]+')

以提取列开头的数字。

要执行所需的过滤,您可以使用:

SELECT *
FROM mytable
WHERE CAST(SUBSTRING(mycolumn FROM '^[0-9]+') AS INT) BETWEEN 1 AND 10

Demo here