sql查询选择表中从10到15的记录
2010-03-04 08:29
302 查看
ORDER BY 子句按一列或多列(最多 8,060 个字节)对查询结果进行排序。有关 ORDER BY 子句最大大小的详细信息,请参阅 ORDER BY 子句 (Transact-SQL)。
Microsoft SQL Server 2005 允许在 FROM 子句中指定对 SELECT 列表中未指定的表中的列进行排序。ORDER BY 子句中引用的列名必须明确地对应于 SELECT 列表中的列或 FROM 子句中的表中的列。如果列名已在 SELECT 列表中有了别名,则 ORDER BY 子句中只能使用别名。同样,如果表名已在 FROM 子句中有了别名,则 ORDER BY 子句中只能使用别名来限定它们的列。
排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序还是降序,就假定为 ASC。
上述语句
表示将前数据库的前15条记录按升序排列,存放在别名为user2的表中。
然后再通过
和
这里两条语句来选择出第11-15条记录。上述order by [USER_ID] desc是将原先查询的15条记录逆序排列,然后通过top5选择逆序后的前五5记录,所以最后结果是从第15-11条的记录。
Microsoft SQL Server 2005 允许在 FROM 子句中指定对 SELECT 列表中未指定的表中的列进行排序。ORDER BY 子句中引用的列名必须明确地对应于 SELECT 列表中的列或 FROM 子句中的表中的列。如果列名已在 SELECT 列表中有了别名,则 ORDER BY 子句中只能使用别名。同样,如果表名已在 FROM 子句中有了别名,则 ORDER BY 子句中只能使用别名来限定它们的列。
排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序还是降序,就假定为 ASC。
SELECT [USER_ID],[USER_NAME],[USER_EMAIL],[USER_PASSWORD] FROM users where [USER_EMAIL] is not null and [USER_PASSWORD] is not null --说明:选择从11到15的记录 select top 5 [USER_ID],[USER_NAME],[USER_EMAIL],[USER_PASSWORD] from (select top 15 [USER_ID],[USER_NAME],[USER_EMAIL],[USER_PASSWORD] from users order by [USER_ID] asc) users2 where [USER_EMAIL] is not null and [USER_PASSWORD] is not null order by [USER_ID] desc
上述语句
(select top 15 [USER_ID],[USER_NAME],[USER_EMAIL],[USER_PASSWORD] from users order by [USER_ID] asc) users2
表示将前数据库的前15条记录按升序排列,存放在别名为user2的表中。
然后再通过
select top 5
和
order by [USER_ID] desc
这里两条语句来选择出第11-15条记录。上述order by [USER_ID] desc是将原先查询的15条记录逆序排列,然后通过top5选择逆序后的前五5记录,所以最后结果是从第15-11条的记录。
更新
如下查询代码所示,我们可以看到有一行的where被注释了,这是因为在全面的查询集中已经去掉了不符合要求的内容了,后面就不需要再用where来限定。代码注释还给出了首末数的计算方法。--第二个数-第一个数+1开始,到第二个数位置 --从7001开始,到11828为止。得出第一个数,11828-x+1=7001,x=4828 SELECT top 4828 '<User>'+ '<Username>' + [USER_NAME] + '</Username>', '<Email>' + [USER_EMAIL] + '</Email>', '<Password>' + [USER_PASSWORD] + '</Password>' + '</User>' FROM (select top 11828 [USER_ID],[USER_NAME],[USER_EMAIL],[USER_PASSWORD] from users where [USER_EMAIL] is not null and [USER_PASSWORD] is not null and [USER_NAME] not LIKE '%&%' order by [USER_ID] asc) users2 --where [USER_EMAIL] is not null and [USER_PASSWORD] is not null and [USER_NAME] not LIKE '%&%' order by [USER_ID] desc
相关文章推荐
- sql查询选择表中从10到15的记录
- 一条sql语句,查询出全部分类各前10记录
- 一条sql语句,查询出全部分类各前10记录
- 一条sql语句,查询出全部分类各前10记录
- SQL语句记录,查询今日某个活动签到是否正常
- 从统计数据表记录总数谈SQL_Server查询优化
- SQL查询得到(按编号分组的日期最大的记录)
- 定时发送MySQL的TOP 10慢查询SQL
- sql查询20到30条记录
- sql根据某一字段查询不重复记录,同时要查询出所有满足条件的字段信息
- Sql 查询当天、本周、本月记录
- Oracle取查询结果第一条记录SQL
- 用sql语句查询不定条数的记录
- SQL重复记录查询(转载)
- 查询SQLSERVER执行过的SQL记录
- SQL简单查询笔记记录
- 给查询出的SQL记录添加序号列(转,很实用!)
- SQL查询重复记录方法大全 转
- sql 查询连续七天以上都有打卡的员工记录
- sql查询重复记录、删除重复记录方法大全