比较Oracle SQL中表的范围

时间:2015-12-28 15:31:35

标签: sql oracle oracle11g oracle-sqldeveloper

我有两张桌子CENTER和RANGE_CENTER。根据表1中的CENTER_ID,我需要找到相应的ID。

例如,如果Centreid是2000,那么它应该显示a100。表1中所有记录的方式。

我发现编写查询很困难。

请你指导我。

DEPT    Center_Id
10  2000
10  2001
20  3001
20  2580


CENTER_FROM     CENTER_TO   ALLOCATION_ID
1999              2499       a100
2500              2999       b234
3000              3499       c199

由于

2 个答案:

答案 0 :(得分:3)

您可以join表格,以便一张表格中的center_id为between另一张表格中的center_from和center_to。

select c.dept,c.center_id,rc.allocation_id
from center c
join range_center rc on c.center_id between rc.center_from and rc.center_to

答案 1 :(得分:0)

如果您不喜欢加入,那么您可以使用相关子查询:

SELECT c.DEPT, c.Center_Id,
       ( SELECT ALLOCATION_ID FROM RANGE_CENTER r
         WHERE c.Center_Id BETWEEN r.CENTER_FROM AND r.CENTER_TO
       ) As ALLOCATION_ID
FROM CENTER c