sql Server 的语法:
SELECT TOP number|percent column_name(s) FROM table_name
方法1:
with temp as
( select row_number() over(order by cityID) as rownum,cityNamefrom city )
select * from temp where rownum between 10 and 20
go
解释:
1 此方法把括号里的查询结果放到变量:temp 里面( 我也不确定是不是变量),并用row_number()函数进行一个行号跟踪,再用over 函数进行一个列的排序规则( 是这必须的),并指定列名为'rownum'
2 紧接着在下面的语句可以对 'rownum' 进行一个指定行号的查询
3 此批语句执行完毕后,变量:temp 释放
方法2:
select identity(int,1,1) as rownum,cityName into #temp fromcity
select * from #temp where rownum between 10 and 20
go
解释:
此方法跟上面的差不多的意思,只不过把 row_number() 函数换成了 identity() 函数
并把结果集放在一个临时表里面,当批语句执行完毕,此临时表还可以使用
---------------------------------------
如何让SELECT 查询结果额外增加自动递增序号_sql技巧
如果数据表本身并不内含自动地增编号的字段时,要怎么做才能够让SELECT查询结果如图表1所示,额外增加自动递增序号呢?我们提供下列五种方法供您参考:
USE北风贸易;
GO
软件开发网
SELECT序号= (SELECT COUNT(客户编号) FROM 客户 AS LiMing
WHERE LiMing.客户编号<= Chang.客户编号),
客户编号,公司名称
FROM客户 AS Chang ORDER BY 1;
GO
SELECT RANK() OVER (ORDER BY 客户编号 DESC) AS 序号,公司名称
FROM客户;
GO
SELECT序号= COUNT(*),LiMing.客户编号,LiMing.公司名称
FROM 客户 AS LiMing,客户AS Chang
WHERE LiMing.客户编号>= Chang.客户编号
GROUP BY LiMing.客户编号,LiMing.公司名称
ORDER BY 序号;
GO
SELECT序号= IDENTITY(INT,1),管道,程序语言,讲师,资历
INTO #LiMing
FROM问券调查一;
GO
SELECT * FROM #LiMing;
GO
DROP TABLE #LiMing;
GO
WITH排序后的图书 AS
(SELECT ROW_NUMBER() OVER (ORDER BY 客户编号 DESC) AS 序号,公司名称
FROM 客户)
SELECT * FROM 排序后的图书
WHERE序号 BETWEEN 2 AND 4;
GO
------------------------------
例如:
在ORACLE中:
"select
"SELECT
增加序号字段
但在sql
释:
1.--rownum在oracle里面就是物理顺序,那么
在sqlserver就直接select
2.--查询后排序,例如:
select
3.select * from 表 where id >= ALL (select id from表);
select * from 表 where id <= ALL (select id from表);
select * from 表 where id = (select max(distinct id) from 表);
select * from 表 where id = (select min(distinct id) from 表);
转自:http://blog.sina.com.cn/s/blog_670dd1b10100kj5e.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。