oracle记录中选择出第一条记录
一个oracle表,字段IDBAL000015.000000110.000000115.00000025.00000029.00000027.00……问我怎么取到每个不同...
一个oracle表,
字段 ID BAL
00001 5.00
00001 10.00
00001 15.00
00002 5.00
00002 9.00
00002 7.00
……
问我怎么取到每个不同ID号BAL值最大的那条记录? 展开
字段 ID BAL
00001 5.00
00001 10.00
00001 15.00
00002 5.00
00002 9.00
00002 7.00
……
问我怎么取到每个不同ID号BAL值最大的那条记录? 展开
7个回答
展开全部
oracle记录中选择出第一条记录的方法。
如下参考:
1.创建测试表
Createtabletest_order(idnumber,valuevarchar2(50));
2.插入测试数据
插入test_order值(3,'v3');
插入test_order值(2,'v2');
插入test_order值(1,'v1');
插入test_order值(5,'v5');
插入test_order值(4,'v4');
提交;
3.检查查询表中的全部数据,可以发现数据没有排序,选择t。*,rowidfromtest_ordert;
4.写SQL,数据只要第一个记录(不是rownum=1)select*from(selectt)。*,row_number()/(orderbyid)rnfromtest_ordert)t,其中rn=1;
展开全部
那只能是借助rownum来实现了. oracle中在加了rownum之后可进行排序。
使用rownum,一般是筛选部分行数为结果,所以若再排序,只是对部分结果进行排序,可能不是所需要的结果。
若在oracle先排序再rownum,则使用SQL嵌套可以实现,比如
select * from (select * from test order by a) where rownum<2;
虽然此sql可实现,排序后查询前10条的数据,根据实际需要修改即可。
使用rownum,一般是筛选部分行数为结果,所以若再排序,只是对部分结果进行排序,可能不是所需要的结果。
若在oracle先排序再rownum,则使用SQL嵌套可以实现,比如
select * from (select * from test order by a) where rownum<2;
虽然此sql可实现,排序后查询前10条的数据,根据实际需要修改即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select id, max(bal) from tb group by id order by id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select id, max(bal) maxbal
from tb
group by id
from tb
group by id
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select id,max(bal) from 表 group by id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询