В таблице с M столбцами я хочу, чтобы строка, содержащая (n + 1) -е наивысшее значение в столбце J, учитывала n-е наивысшее значение Столбец J. Если нет (n + 1) -го наивысшего значения столбца J, тогда запрос должен возвращать строку, содержащую n-е наивысшее значение в столбце J. Возможно ли, что я могу сделать это, используя один запрос, используя rownum или rank()?Выбор N + 1-й самой высокой строки в Oracle, если она существует или возвращает Nth наивысший
Например, в приведенной ниже таблице, если я хочу, чтобы выполнить запрос на колонке Б,
A B C
=============
1 3 4 -> ROW1
8 4 5 -> ROW2
9 5 2 -> ROW3
0 0 1 -> ROW4
QUERY (ROW1) => возвращает ROW4, поскольку ROW4 имеет следующий наибольшее значение для Col B, который 0 QUERY (ROW2) => возвращает ROW1 так ROW1 имеет следующее наибольшего значения для Col B, который является 3
Но если я бегу QUERY (ROW4), он должен вернуть ROW4 себя, так как нет никакого другого более низкого значения для Col B.
К следующему наивысшему я имею в виду N + 1-е наивысшее значение при сортировке по убыванию. Таким образом, для наименьшего значения нет следующего наивысшего значения.
Возможно ли, что я могу сделать это, используя один запрос?
Хорошо, может быть, это мой слабый ум, но я перечитал ваш вопрос несколько раз, и я ВСЕ ЕЩЕ * не знаю *, в чем цель. Вы говорите: «QUERY (ROW1) => возвращает ROW4, поскольку ROW4 имеет следующее самое высокое значение для Col B, которое равно 0». Но, Col B, ROW1 равно 3, следующее самое высокое значение - 4, которое находится в ROW2, а затем 5, которое находится в ROW3. ROW4 имеет 0, что на * меньше * 3. Таким образом, вы можете увидеть мое замешательство здесь. Пожалуйста, дайте лучший пример входов и желаемых результатов. –
Извините за путаницу. К следующему наивысшему я имею в виду N + 1-е наивысшее значение при сортировке в порядке убывания. Таким образом, для наименьшего значения нет следующего наивысшего значения. Просто добавлено редактирование. – PuppyHeadedNinja
Это на самом деле ничего не разъясняет для меня. Вы хотите n-е наивысшее значение столбца J, но нет столбца J, только A, B и C. Затем вы запрашиваете ROW1 для получения ROW4 ??? Это не имеет никакого смысла для меня вообще. Сожалею. –