sql - 从多个范围查找值的最佳方法

标签 sql database vba ms-access

我需要确定一个值适合的范围,以便确定适当的折扣。只是试图确定在 Access (2016) 中执行此操作的最佳最有效方法。这是一个简化的表格:

enter image description here

我的第一个想法是遍历记录集以评估每条记录的 >= FROM$ 和 =< TO$ 直到找到范围匹配,然后获取折扣率。是否有更有效的方法使用 SQL 语句执行此操作?

最佳答案

在您的示例中,无法找到诸如 9.999 之类的值的折扣...它大于 9.99 且小于 10,并且不适合内部你的任何范围。我首先将您的数据更改为:

| From | To   | Discount |
|------|------|----------|
| 0    | 10   | 0.05     |
| 10   | 20   | 0.10     |
| 20   | 50   | 0.12     |
| 50   | NULL | 0.13     |

然后你可以像这样探测表格:

SELECT Discount 
FROM   Discounts
WHERE  (@Value >= [From])
AND    (@Value <  [To] OR [To] IS NULL)

关于sql - 从多个范围查找值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53202500/

相关文章:

vba - 如何使用 VBA 为 excel 图表分配 XValues

vba - 如何使用 Excel VBA 拆分和重组单元格

php - 查询更新或插入

c# - 是否可以使用 SQL 查询搜索 DataGridView 或 DataTable

mysql - 锁可以防止不可重复读取吗?

database - 如何为数据库中的所有表授予某些权限?

sql - 是否可以将 varchar(32) 的字段转换为 Firebird 数据库中的 BLOB

php - 将自定义查询转换为 SQL

sql - Entity Framework 通过字符串sql过滤数据

excel - 点击隐藏工作表?