这是一个Oracle问题。
我需要在一系列记录中找到前5大值。假设我有2000条记录,并且有一列保存每条记录中的数字值。我需要检查这个数字字段,只选择前五大字段。
所以,如果我在我的数字列中有这些值
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语法让我失望。
请帮忙。
答案 0 :(得分:9)
你可以尝试:
SELECT * FROM
(SELECT ADDITIONAL_INFO FROM your_table
ORDER BY to_number(ADDITIONAL_INFO) DESC) r
WHERE rownum <= 5