易截截图软件、单文件、免安装、纯绿色、仅160KB

sql查询选择表中从10到15的记录

      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。
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
来选出前5条记录,因为user2是按逆序排列的,所以最后结果是从第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 nul


相关文档:

SQL分组排序

今天遇到个有意思的问题,是一个分组排序的问题,不过要求分组和分组间也要排序,如果这个组内有一条数据是最近更新的,那么这整个组都应该排在前面。
下面以Oracle的HR示例Schema中的employees表为例:
语句按部门分组,分组之间的排序是这样的:如果整个分组中有一个员工的hire_date是最新的,那么这个分组就应该排在其 ......

SQL SERVER 2000 安装提示"一般性网络错误"

 今天安装SQL SERVER 2000 个人版,安装最后弹出错误对话框:
“安装程序配置服务器失败。参考服务器错误日志和C:\windows\sqlstp.log”,从而无法安装。
到具体的目录查看显示"一般性网络错误",在网上搜索问题原因及解决方案如下:
此问题属于sql server的bug, GetComputerName 用于获取本地计算机名。 ......

oracle sql面试题2

一.简单SQL查询:
1):统计每个部门员工的数目
select dept,count(*) from employee group by dept;
2):统计每个部门员工的数目大于一个的记录
select dept,count(*) from employee group by dept having count(*)>1;
3):统计工资超过1200的员工所在部门的名称
select e.first_name,salary,d.name
from s_emp ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号