sql - 更新访问表列出了给定的两组之间的所有数字
问题描述
我有一个 Access 数据库,用户在其中输入两组数字,例如63
和120
。
>=63
在另一个表中,我需要<=120
列出所有数字。
我该怎么做?
解决方案
创建一个名为Long Integer数据类型
numbers
的单个字段id
的表:使用整数0到9填充此表:
然后,您可以使用如下查询来实现交叉连接(也称为笛卡尔积)来产生数字 1-1000:
select 100*n100.id+10*n10.id+n1.id+1 as n from numbers n1, numbers n10, numbers n100
如果您的数量不太可能超过 100,则可能变为:
select 10*n10.id+n1.id+1 as n from numbers n1, numbers n10
如果您的数量可能超过 1000,则以下将产生 10000 条记录:
select 1000*n1000.id+100*n100.id+10*n10.id+n1.id+1 as n from numbers n1, numbers n10, numbers n100, numbers n1000
(将模式扩展/收缩到适合您的数据的数量级)
最后一步是应用适当的选择标准来选择所需的数字范围:
select t.n from (select 100*n100.id+10*n10.id+n1.id+1 as n from numbers n1, numbers n10, numbers n100) t where t.n >= val([Enter lower bound]) and t.n <= val([Enter upper bound])
推荐阅读
- javascript - Laravel Vue 网络通知组件错误
- vb.net - vb net exclude periods between two datetime
- javascript - Finding ++ in Regular Expression
- sql - Join on subquery with knex
- reactjs - 在本机反应中与 Socket.io 连接时出现解析器错误
- python - 通过 Proxifier 运行 Python 脚本
- c - 不使用 string.h 库在字符串中搜索“good”
- typescript - Typescript 类上的泛型类型可以省略
- python - 在 Django 中验证 reCAPTCHA v3
- mysql - 无法在 mysql 中创建表 - 错误 1064