2011-09-23 115 views
2

好的,需要一些幫助爲Oracle 10g DB創建查詢。我有一個表,如下所示:Oracle最小和最大列查詢

---------------------------------------- 
| lowerBound | upperBound | locationId | 
---------------------------------------- 
|  0  |  99  |  1  | 
---------------------------------------- 
|  100 | 199  |  2  | 
---------------------------------------- 
... 

另一個表看起來像這樣:

----------------------------- 
| locationId | locationCode | 
----------------------------- 
|  1  |  12345 | 
----------------------------- 
|  2  |  23456 | 
----------------------------- 
|  3  |  34567 | 
----------------------------- 
... 

我開始一個數字,說113,但它是一個變量在java中想通了。我需要根據它位於lowerBound和upperBound列之間的數字找出與該數字相對應的locationId,然後加入到第二個表中的locationCode中。我查了一下MIN/MAX之類的東西,但是我沒有找到我正在尋找的東西。我不是一個好的DBA,所以任何幫助表示讚賞。

回答

2
SELECT t2.locationCode 
    FROM table1 t1 
INNER JOIN table2 t2 USING(locationId) 
WHERE 113 BETWEEN t1.lowerBound AND t1.upperBound 

如果使用部分謎題你:

SELECT t2.locationCode 
    FROM table1 t1 
INNER JOIN table2 t2 ON t2.locationId = t1.locationId 
WHERE 113 BETWEEN t1.lowerBound AND t1.upperBound 

請注意,如果您的下界和上界列是整數,這會工作。如果它們是VARCHAR,當然你必須使用TO_NUMBER函數。

+0

你把它釘在頭上。謝謝,Benoit – mtaylor314