我的数据库中的值如下
1
2
2A
.......
10
10A
.......
250A
......
300
我需要找到1-10,11-20,.... 291-300
范围内的记录无法弄清楚如何执行此操作,因为数字后面有字符
我正在使用postgres db,所以我可以在db
上应用正则表达式查询答案 0 :(得分:1)
您可以使用:
SUBSTRING(mycolumn FROM '^[0-9]+')
以提取列开头的数字。
要执行所需的过滤,您可以使用:
SELECT *
FROM mytable
WHERE CAST(SUBSTRING(mycolumn FROM '^[0-9]+') AS INT) BETWEEN 1 AND 10