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语法让我失望.
请帮忙.
你可以尝试:
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)