sql获取一个数字,其范围是另一个数字

时间:2014-06-01 21:24:06

标签: c# sql

我有一列价格中断,需要查找包含特定数量的行。它设置如下:

id | MinimumQuantity | Price
-----------------------------------
1  |        1        |    10
1  |        10       |    20
1  |        25       |    30

......数量可以是任何数字。因此,如果数量为1,我需要得到价格10(1-10),如果数量是15,我需要得到价格20(10-25),如果数量是100,我需要得到价格30(25+)。到目前为止,我有:

select Price from myTable where MinimumQuantity >= @myQuantity and id = @myID

...但当然这不会回归25+,看起来它应该很简单,但我很难过。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

这里是对mysql的正确查询:

SELECT `Price` from `myTable`
WHERE @myQuantity >= `MinimumQuantity` and `id` = @myID
ORDER BY `MinimumQuantity` ASC
LIMIT 1

用于sql server:

SELECT top 1 [Price] from [myTable]
WHERE @myQuantity >= [MinimumQuantity] and [id] = @myID
ORDER BY [MinimumQuantity] ASC