免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3514 | 回复: 2
打印 上一主题 下一主题

mssql 的 sql statement 问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-02-11 18:26 |只看该作者 |倒序浏览
想问oracle 中的rownum 于 mssql 2000 可怎么实施的?
因为在做分页时经常要用

e.g.
In oracle

SELECT result.*
FROM ( SELECT a.field_1, a.field_2
              FROM table_a a
            ) result
WHERE rownum < 20 AND rownum > 10

论坛徽章:
0
2 [报告]
发表于 2002-02-16 05:26 |只看该作者

SQL server use key word 'TOP N'

you can try  something

select top 20 myID from t1 where myID not in (select top 10 myID from T1)

论坛徽章:
0
3 [报告]
发表于 2002-02-16 13:14 |只看该作者

use "top n"

After sqlserver 7 version , sqlserver support a new way to fulfil the need to retrieve a subset of the query result. It is \"top N\".


but you always can use the old way to fulfil your needs.\"SET ROWCOUNT \"



TOP 子句限制返回到结果集中的行数。

TOP n [PERCENT]

n 指定返回的行数。如果未指定 PERCENT,n 就是返回的行数。如果指定了 PERCENT,n 就是返回的结果集行的百分比,如下所示:

TOP 120 /*Return the top 120 rows of the result set. */
TOP 15 PERCENT /* Return the top 15% of the result set. */.

如果一个 SELECT 语句既包含 TOP 又包含 ORDER BY 子句,那么返回的行将会从排序后的结果集中选择。整个结果集按照指定的顺序建立并且返回排好序的结果集的前 n 行。

限制结果集大小的另一种方法是在执行一个语句之前执行 SET ROWCOUNT n 语句。SET ROWCOUNT 与 TOP 的不同之处在于:

SET ROWCOUNT 限制适用对 ORDER BY 取值后在结果集中生成行。如果指定了 ORDER BY,SELECT 语句将在从某个已根据指定的 ORDER BY 分类进行了排序的值集中选择 n 行后终止。


TOP 子句适用于指定了该子句的单个 SELECT 语句。在执行另一个 SET ROWCOUNT 语句之前,SET ROWCOUNT 会一直有效,例如执行 SET ROWCOUNT 0 将会关闭此选项。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP