请问要在oracle数据库里查满足条件的前10条记录,sql该怎么写?

tager 2004-10-22 04:44:20
我的SQL是这以写的:
String sql = "select top 10 distinct username, sum(http) from PROXY_DAILY4USER_REPORT where year=" + year + "and month=" + month + " group by username order by sum(http) desc";

报错:

The source of this error is javax.servlet.ServletException: ORA-00923: 未找到预期 FROM 关键字

把 top 10 去掉就没错误,请问这个sql该怎写?
...全文
276 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
studyday 2004-10-22
  • 打赏
  • 举报
回复
select * from (select http,rank() over(partition by order by sum(http) desc) tk from yourtablename group by http
where tk < 10 ;
studyday 2004-10-22
  • 打赏
  • 举报
回复
呵,应该是 select * from (select http,rank() over(order by sum(http) desc) from yourtablename group by http
where tk < 10 ;
studyday 2004-10-22
  • 打赏
  • 举报
回复
select * from (select http,rank() over(partition by order by sum(http) desc) from yourtablename group by http
where tk < 10 ;
tager 2004-10-22
  • 打赏
  • 举报
回复
谢谢大家,下面的我试了下面SQL,是正确的。


String sql ="SELECT * FROM ( SELECT C.*, ROWNUM AS NUMROW FROM ( "
+ 你的sql语句
+") C ) "
+ "WHERE NUMROW >0 AND NUMROW <= 10";
tom2005 2004-10-22
  • 打赏
  • 举报
回复
rownum<11
jnu_wen 2004-10-22
  • 打赏
  • 举报
回复
哦,写错了是rownum <= 10
jnu_wen 2004-10-22
  • 打赏
  • 举报
回复
写rownum = 10吧
XMAN197751 2004-10-22
  • 打赏
  • 举报
回复
直接在where后面家上条件rownum <=10 就行了。
jinsfree 2004-10-22
  • 打赏
  • 举报
回复
select * from tablename where rownum<11
tager 2004-10-22
  • 打赏
  • 举报
回复
谢谢,我在试!
yeshucheng 2004-10-22
  • 打赏
  • 举报
回复
我也长见识了:)
bluelamb 2004-10-22
  • 打赏
  • 举报
回复
select * from (select distinct username,rownum, sum(http) from PROXY_DAILY4USER_REPORT where year=" + year + "and month=" + month + " group by username order by sum(http) desc)
where rownum<=10
dophin1003 2004-10-22
  • 打赏
  • 举报
回复
String sql ="SELECT * FROM ( SELECT C.*, ROWNUM AS NUMROW FROM ( "
+ 你的sql语句
+") C ) "
+ "WHERE NUMROW >0 AND NUMROW <= 10";
java200408 2004-10-22
  • 打赏
  • 举报
回复
oracle 不支持Top的。top是sqlserver的。
oracle中用rownum实现。
代码如下:(如果不想排序两层就够了)
select * from(
select rownum myrownum,authorid,postnum from
(
select authorid,postnum from bbs_authors order by postnum desc

))
where myrownum between 10 and 20

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧