我有一张桌子
id
---
10
20
30
40
如果我在11-29 30之间传递数字,我希望得到输出20,如果我在21-29之间传递数字
我该怎么做?
答案 0 :(得分:11)
请试试这个
select min(id) from your_table where id >= your_number_value
希望这有帮助:)
答案 1 :(得分:1)
选择id大于输入的位置,选择top 1,然后按id升序排序
所以
SELECT TOP 1 Id
FROM <YOUR TABlE>
WHERE ID >= <INPUT>
ORDER BY ID ASC
--specifying asc is essentially irrelevant as it's default, but it's nice to show intent.
如果您的输入介于11到19之间,那么这应该给你20
答案 2 :(得分:-1)
让我们说要传递的数字是变量&#39; var_num&#39;。
尝试类似于此 -
SELECT id
FROM table_name
WHERE id = CASE
WHEN (var_num % 10) > 0
THEN (var_num - (var_num % 10)) + 10
ELSE
var_num
END;
如果通过11-19,则返回20,如果20本身通过,则返回20。