新手问题系列,求助贴
时间:2010-11-02
来源:互联网
sql server 2005,查询,如果我有一张表1万行,怎么样,选行的范围,我只知道开头1000行是:
SELECT top 1000 [ID]
,[CITYNAME]
,[PERIOD]
,[CHAINCODE]
,[STORECODE]
,[YSPM]
,[YSCJ]
,[YSGG]
,[DJ]
,[XSL]
,[XSE]
,[QC]
,[JH]
,[CH]
,[YDBH]
,[SPBH]
,[PZWH]
FROM [GBC].[dbo].[content]
但是,如果我想选第5000行到7000行,或者我想选,最后1000行,语句应该怎么打?
[ 本帖最后由 wqjwftcaqr 于 2010-11-2 11:14 编辑 ]
SELECT top 1000 [ID]
,[CITYNAME]
,[PERIOD]
,[CHAINCODE]
,[STORECODE]
,[YSPM]
,[YSCJ]
,[YSGG]
,[DJ]
,[XSL]
,[XSE]
,[QC]
,[JH]
,[CH]
,[YDBH]
,[SPBH]
,[PZWH]
FROM [GBC].[dbo].[content]
但是,如果我想选第5000行到7000行,或者我想选,最后1000行,语句应该怎么打?
[ 本帖最后由 wqjwftcaqr 于 2010-11-2 11:14 编辑 ]
作者: wqjwftcaqr 发布时间: 2010-11-02
如果你的表中ID顺序编号的可以直接在Where中使用ID作为条件,否则需要使用2005新增功能 ROW_NUMBER(),可以很容易的实现你的要求,注意rn是VARChar,所以WHERE中的数字需要单引号。
复制内容到剪贴板
(SELECT *, ROW_NUMBER() OVER(ORDER BY c.id) AS rn
FROM [GBC].[dbo].[content] AS c) AS t1
WHERE r1.rn BETWEEN '5000' AND '7000'
代码:
SELECT * FROM(SELECT *, ROW_NUMBER() OVER(ORDER BY c.id) AS rn
FROM [GBC].[dbo].[content] AS c) AS t1
WHERE r1.rn BETWEEN '5000' AND '7000'
作者: taller 发布时间: 2010-11-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28