好的,需要一些帮助来创建Oracle 10g数据库的查询。我有一张桌子看起来像这样:
----------------------------------------
| lowerBound | upperBound | locationId |
----------------------------------------
| 0 | 99 | 1 |
----------------------------------------
| 100 | 199 | 2 |
----------------------------------------
...
另一张表如下:
-----------------------------
| locationId | locationCode |
-----------------------------
| 1 | 12345 |
-----------------------------
| 2 | 23456 |
-----------------------------
| 3 | 34567 |
-----------------------------
...
我从一个数字开始,比如说113,但它是java中的一个变量。我需要弄清楚对应于该数字的locationId,基于它落在lowerBound和upperBound列之间,然后将其连接起来以找出第二个表中的locationCode。我查了MIN / MAX之类的东西,但是我找不到我想要的东西。我不是一个优秀的DBA,所以任何帮助都表示赞赏。
答案 0 :(得分: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
请注意,如果lowerBound和upperBound列为INTEGERS,则此方法有效。如果它们是VARCHAR,那么您当然必须使用TO_NUMBER
函数。