我有一长串六位数字(例如 123456)
在我的 postgresql 数据库中,我有一个包含两列 start_value 和 end_value 的表。该表具有起始值和结束值的行,它们的长度为 9 位数字,表示一个数字范围,即 start_value 可能是 123450000,end_value 可能是 123459999。
我需要将六位数字中的每一个与数据库表中落在其范围内的行进行匹配。
对于我列表中的许多数字,我可以简单地运行以下命令
SELECT * FROM table WHERE start_value=(number + 000)
Run Code Online (Sandbox Code Playgroud)
但是,这不包括落入范围内但与此模式不匹配的数字。
我一直在尝试以下语句:
SELECT * FROM table WHERE start_value > (number + 000) AND end_value < (number + 999)
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为某些行覆盖的范围比 xxxxx0000 到 xxxxx9999 更大,因此上面的语句可能返回 20 行或没有。
任何点都将是最受欢迎的!
编辑:列的数据类型是数字(25)
假设number是数字:
select *
from table
where number * 1000 between start_value and end_value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4096 次 |
| 最近记录: |