我有两列的表。一个是开始,另一个列是结束。 如果我给出任何数字,它必须选择表中所有匹配的行。 例如:
start | End 100 | 200 100 | 500 1 | 345 200 | 400
如果我给123,它应该选择:
100 | 200 100 | 500 1 | 345
如何为此编写查询?
答案 0 :(得分:2)
包容性选择:
SELECT * FROM table
WHERE @value BETWEEN start AND end
独家选择:
SELECT * FROM table
WHERE @value > start AND value < end
答案 1 :(得分:2)
我不明白你对这个任务的困惑:
with t(strt, En) as (
select 100, 200 from dual union all
select 100, 500 from dual union all
select 1, 345 from dual union all
select 200, 400 from dual
)
select *
from t
where 123 between strt and en
STRT EN
-----------
100 200
100 500
1 345