Выберите 5 самых больших ценностей - Oracle - PullRequest
1 голос
/ 26 ноября 2011

Это вопрос Oracle.

Мне нужно найти 5 самых больших значений в серии записей.Скажем, у меня 2000 записей, и в каждой записи есть столбец, в котором содержатся числовые значения.Мне нужно проверить это числовое поле и выбрать только 5 самых больших.

Так что, если у меня есть эти значения в моем числовом столбце

22
3
44
2
23
9
4
2
99

Тогда будет возвращено следующее

22
44
23
9
99

В настоящее время мне нужно проанализировать числовое значениес поля, как это строка.Я анализирую это со следующим

REGEXP_SUBSTR(SUBSTR(ADDITIONAL_INFO, 1 ,
              INSTR(ADDITIONAL_INFO, ',', 1,1)), '[0-9]+') "CELLS"

Я думаю, что может быть зацикливание и, если еще выбор, вовлеченный.Если бы это был C #, я мог бы сделать это за несколько минут.Но синтаксис Oracle отталкивает меня.

Пожалуйста, помогите.

1 Ответ

9 голосов
/ 26 ноября 2011

Вы можете попробовать:

SELECT * FROM
    (SELECT ADDITIONAL_INFO FROM your_table
     ORDER BY to_number(ADDITIONAL_INFO) DESC) r
WHERE rownum <= 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...