Oracle минимальный и максимальный столбцы запрос - PullRequest
2 голосов
/ 23 сентября 2011

Хорошо, нужна помощь при создании запроса для базы данных Oracle 10g.У меня есть таблица, которая выглядит следующим образом:

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

Другая таблица выглядит так:

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

Я начинаю с числа, скажем 113, но это переменная, вычисленнаяДжава.Мне нужно выяснить locationId, который соответствует этому числу, основываясь на том, что он находится между столбцами lowerBound и upperBound, а затем соединить его, чтобы выяснить locationCode во 2-й таблице.Я искал такие вещи, как MIN / MAX и между, но я не могу найти именно то, что я ищу.Я не хороший администратор баз данных, поэтому любая помощь приветствуется.

1 Ответ

2 голосов
/ 23 сентября 2011
SELECT t2.locationCode
  FROM table1 t1
 INNER JOIN table2 t2 USING(locationId)
 WHERE 113 BETWEEN t1.lowerBound AND t1.upperBound

Если часть USING озадачивает вас:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...