Мне нужно преобразовать список чисел, попадающих в определенные диапазоны, в список значений, упорядоченный по приоритетному столбцу. Таблица имеет следующие значения:
| YEAR | R_MIN | R_MAX | VAL | PRIO |
------------------------------------
2010 18000 90100 52 6
2010 240000 240099 82 3
2010 250000 259999 50 5
2010 260000 260010 92 1
2010 330000 330010 73 4
2010 330011 370020 50 5
2010 380000 380050 84 2
Диапазоны будут разными для разных лет. Диапазоны в течение одного года никогда не будут перекрываться.
В качестве ввода будет указан год и список чисел, которые могут попадать в один из этих диапазонов. Список вводимых номеров будет небольшим, от 1 до 10 номеров. Пример ввода чисел:
(20000, 240004, 375000, 255000)
С этим вводом я хотел бы получить список, упорядоченный по приоритетному столбцу, или одно значение:
82
50
52
Единственное значение, которое меня здесь интересует, это 82 , поэтому UNIQUE и MAX_RESULTS = 1 подойдут. Это легко сделать с помощью одного запроса на число, а затем отсортировать его в коде Java, но я бы предпочел сделать это в одном запросе SQL.
Какой запрос SQL, который будет выполняться в базе данных Oracle, даст мне желаемый результат?
(Обратите внимание, что речь идет не о разбиении входной строки , а о сопоставлении каждого значения в списке значений с диапазонами, определенными в разных столбцах.)