【发布时间】:2016-12-01 16:27:18
【问题描述】:
我手头有一系列值。我想找出值所在的表中的范围。
值列表(475747003, 476367781, 454313069, 454545398, etc.,) — 1000 个值
DB 表中的范围如下所示:
Start_Range End_Range
--------------------------
475747000 475747999
476367781 476367782
454313059 454313069
我的输出应该如下所示,即我想找出所有 1000 个值的 Start_Range 和 End_Range。我尝试使用“Between”运算符,但不知道如何将其用于“值列表”?
Start_Range End_Range
--------------------------
475747000 475747999
476367781 476367782
454313059 454313069
所以基本上,下面的 sql 脚本会抛出错误,
select * from TABLE
where (475747003, 476367781, 454313069, 454545398) between start_range and end_range;
ORA-01796: 此运算符不能与列表一起使用 01796. 00000 - “此运算符不能与列表一起使用”
所以我想另辟蹊径。
【问题讨论】:
-
你的值在 x 和 y 之间的带有 MAX() 和 MIN() 或 TOP 1 ORDER BY 和 TOP 1 ORDER BY DESC 的东西会让人想起。
-
您使用的是哪个 DBMS?
-
我也看不出这两个例子有什么区别
-
Oracle 版本 3.2.10.09
-
数据库表中的 1000 个范围,我想找到值所在的正确范围。但我有一个值列表。不止一个。