sql中有没有类似于oracle中rownum的函数

 我来答
匿名用户
2013-06-23
展开全部
SQL Server 2000中没有SQL Server 2005中有一个ROW_NUMBER()函数实现了相同的功能 ROW_NUMBER ( ) OVER ( [ <partition_by_clause> ] <order_by_clause> ) 参数 <partition_by_clause> 将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。有关 PARTITION BY 的语法,请参阅 OVER 子句 (Transact-SQL)。 <order_by_clause>确定将 ROW_NUMBER 值分配给分区中的行的顺序。有关详细信息,请参阅 ORDER BY 子句 (Transact-SQL)。当在排名函数中使用 <order_by_clause> 时,不能用整数表示列。 返回类型 bigint 备注 ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。 参考: http://msdn.microsoft.com/zh-cn/library/ms186734(SQL.90).aspx
spyhost
2015-10-30 · TA获得超过3132个赞
知道小有建树答主
回答量:946
采纳率:90%
帮助的人:103万
展开全部
使用top。
rownum,是指显示oracle查询结果的若干笔资料,它放在where后面,比如:
select * from table where rownum<10;
top,是指显示Sql Server查询结果的若干笔资料,它放在select之后,比如:
select top 10 * from table;
简单的说,在oracle和Sql Server中,以上两句SQl是等效的,但若深入研究,它们又不同,而且也无法相互换用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
appsna
2015-09-12 · TA获得超过801个赞
知道小有建树答主
回答量:392
采纳率:60%
帮助的人:148万
展开全部
Oracle row_number()函数用法

row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。
与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码。
row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开始排序)。
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)
dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的。

oracle 分析函数 row_number(),返回一个整数值(>=1);

语法格式:

row_number() over (order by col_1[,col_2 ...])

作用:按照col_1[,col_2 ...]排序,返回排序后的结果集。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-23
展开全部
在sql2005以后就用了rownum这个函数但是在2000是没有的不过可以通过临时表和identity函数还做一个类似的方法
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-23
展开全部
好像没有吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式