楼主您好
通过rownum小于等于10获取前10条记录
示例:
SELECT FROM 表名 WHERE ROWNUM<=10
补充:
ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类推。
小于等于10,则就会只取前10条记录。
class
classid
classname
product
classid
proname
num
select
top
10
cclassid
,cclassname,sum(pnum)
from
class
c,product
p
where
pclassid=cclassid
group
by
cclassid
order
by
sum(pnum)
desc
有的不能用top。,不同数据库软件查询好像有细微的差别。
1、sql查询前10条数据:
select top 10 from tablename where 1=1;1
2、oracle查询前10条数据:
select from tablename where rownum<=10;1
oeacle中没有top,使用的是rownum,下面是关于rownum的介绍:
================================
rownum是Oracle从8开始提供的一个伪列,是把SQL出来的结果进行编号,始终从1开始,常见的用途就是用来分页输出
select from tablename where rownum<=10;1
rownum也可以实现数据分页查询:
SELECT
FROM (SELECT a, ROWNUM rn
FROM tablename a)
WHERE rn >= 10 AND rn <= 201234567
这条语句即是输出第10到第20条纪录,这里之所以用rownum rn,是把rownum转成实例,因为rownum本身只能用 <=的比较方式,只有转成实列,这样就可做 >=的比较了。
你可以先根据值得大小进行降序排序,在添加row_number来多出序号一列,然后取前10 的序号值,最后用UNION将两条语句结果合并。请参考下列code:
declare @t table(name varchar(1),value int)
insert into @t values
('A',15),
('B',10),
('C',20),
('D',5),
('E',7);
;WITH Cte AS
(
SELECT ,ROW_NUMBER() OVER(ORDER BY VALUE desc) RN FROM @T
)
SELECT name,value FROM CTE WHERE RN<=3
UNION ALL
SELECT 'Others',sum(value) from cte where rn>3
With A
As
(
Select distinct a,1 as cnt From T
union all
Select a,cnt+1 as cnt From A where cnt<10
)
Select Ba,BB,BC From A Left Join
(
Select row_number() over(partition by a order by b) as cnt, from T
) B on ACnt=BCnt Where BCnt Is Not Null
/
按标志分别产生10条记录和记录号(A)
把T表按标志分组,身高排序产生记录号(B)
把AB做链接
/
缺少查询的参数,可以修改为:
select
top
10
from
tablename
还可以按照某个字段排序的前几个:
select
top
10
from
tablename
order
by
字段名
以上就是关于Oracle中的SQL,得到表中前10条记录怎么写全部的内容,包括:Oracle中的SQL,得到表中前10条记录怎么写、sql语句 分组查询前10条数据、怎么使用sql server查询显示第10条到第20条信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)