根据from和to sql从表中获取行

时间:2017-12-11 07:09:36

标签: sql

你好我有下表。

enter image description here

我给了这个查询

SELECT * FROM Charges where AmountFrom < 50 and AmountTo > 50

它给了第一张唱片。

当我提出查询时

SELECT * FROM Charges where AmountFrom < 5000 and AmountTo > 5000

我的金额是验证5000美元并获得5000的充电值

它应该给我第一个记录太对了?

3 个答案:

答案 0 :(得分:1)

要获得金额为5000的第一条记录,您应该使用greater than & equal to operator ">=",您可以像这样使用:

SELECT * FROM Charges where AmountFrom < 5000 and AmountTo >= 5000

如果您使用的是sql server,那么您可以通过使用您的金额变量来实现结果:

declare @Amount money
set @Amount = 5000

SELECT ChargeValues FROM Charges where AmountFrom <= @Amount and AmountTo >= @Amount

答案 1 :(得分:1)

你需要这样做

SELECT * FROM Charges where AmountFrom <= 5000 and AmountTo >= 5000

比你获得第一张唱片。因为第一记录的AmountTo值是5000.

如果你AmountTo >5000它会记录哪个值大于5000而不记录哪个值为5000。

或尝试

SELECT * FROM Charges where AmountFrom < 5000 and AmountTo > 4999

答案 2 :(得分:1)

使用

SELECT * FROM Charges where AmountFrom < 5000 and AmountTo > 5000

您正在寻找以小于5000的值开头的条目,并以大于此值的值结束。没有这样的记录。您更愿意包含值:

select * from charges where amountfrom <= 5000 and amountto >= 5000

或只是

select * from charges where 5000 between amountfrom and amountto

BETWEEN包含搜索中的from和to值。)