我有如下数据库表付款
level_count | amount
__________________________
650 | 12
1000 | 35
1700 | 50
__________________________
现在想检查我是否提供了作为level_count列值的650输入。然后,我应该得到的金额为12。然后,如果我提供的输入为999,我仍然应该得到12。意味着它应该比较其连续的行并进行比较。假设如果输入1200,那么我应该得到35;如果输入1700或更高,我应该得到50。 我尝试过流动,但没有成功。
我要去哪里了
SELECT * FROM payment T1
INNER JOIN payment T2 on T1.level_count>=T2.level_count AND T1.level_count<T2.level_count
WHERE T1.level_count = '650'
当我执行上述查询时,没有任何结果。
答案 0 :(得分:0)
您可以在此处尝试使用LIMIT
查询:
SELECT *
FROM payment
WHERE level_count <= 999 -- or 650, or another input value
ORDER BY level_count DESC
LIMIT 1;
以上查询的逻辑分为两个部分。首先,WHERE
子句删除level_count
比输入值更大的所有记录。但这仍然使我们有可能拥有多个记录(包括我们实际想要的记录)。然后,LIMIT
窍门将剩下的单个记录保持为最高 level_count
。