选择前5大值 - Oracle

Zol*_*olt 1 sql oracle selection

这是一个Oracle问题.

我需要在一系列记录中找到前五大值.假设我有2000条记录,并且有一列保存每条记录中的数字值.我需要检查这个数字字段,并且只选择前5位.

所以,如果我在我的数字列中有这些值

22
3
44
2
23
9
4
2
99
Run Code Online (Sandbox Code Playgroud)

然后将返回以下内容

22
44
23
9
99
Run Code Online (Sandbox Code Playgroud)

我目前不得不解析字段中的数字值,因为它是一个字符串.我用以下内容解析它

REGEXP_SUBSTR(SUBSTR(ADDITIONAL_INFO, 1 ,
              INSTR(ADDITIONAL_INFO, ',', 1,1)), '[0-9]+') "CELLS"
Run Code Online (Sandbox Code Playgroud)

我想可能会出现循环,如果涉及其他选择.如果这是C#,我可以在几分钟内完成.但是Oracle语法让我失望.

请帮忙.

Mar*_*rco 9

你可以尝试:

SELECT * FROM
    (SELECT ADDITIONAL_INFO FROM your_table
     ORDER BY to_number(ADDITIONAL_INFO) DESC) r
WHERE rownum <= 5
Run Code Online (Sandbox Code Playgroud)