日期:2014-05-18  浏览次数:20605 次

怎么样用sql语句做到 只查询 表里第4~15行数据的写法
只查询   4到15行   之间的   4之前   和15之后   的都不查询
不知道怎么实现

假设总数据大于15行

先谢谢了

------解决方案--------------------
select top 20 number=identity(int,1,1) into Numbers from syscolumns
select top 12 * from Numbers
where number not in (select top 3 number from Numbers)

4
5
6
7
8
9
10
11
12
13
14
15

(所影响的行数为 12 行)
------解决方案--------------------
select top 100 number=identity(int,1,1) into Numbers from syscolumns
select * from(
select top 12 *
from(select top 15 * from Numbers order by number asc) a
order by number desc) b
order by number asc
------解决方案--------------------
sql server 2000
4-15行应该假设是设字段FieldName排序得出的,
因为按不同字段排序会得出的4-15行的结果是不一样的,
select * from
(select top 12 * from
(select top 15 * from tableName order by FieldName) T order by FiledName desc)
order by FieldName

sql server 2005
有相应的排序函数,类似于ORACLE中的行号,很方便
------解决方案--------------------
給前面括號中SQL語句返回的結果集取的別名
------解决方案--------------------
假设取id字段
select top 15 * from (table) where id not in (select top 4 id from (table))
------解决方案--------------------
select top 12 * from (select top 15 * from 表 order by id) 表2 order by id desc
------解决方案--------------------
楼上的几位只是把那几条记录找出来了

下面这个语句可以查出任何段的结果,而且排序字段可以自己选择,结果会满足自己的要求

with T as (select ROW_NUMBER() over(order by ColumName) AS RowNo , * from TableName)
select * from T where RowNo between 4 and 15 Order by ColumName

PS:ROW_NUMBER()这个函数不知道2000有没有,我只知道2005有这个函数
------解决方案--------------------
select top 15 * from table1 where id > =
(select max(id) from ( select top 4 id from table1 ) as a )

1、先找到前4条记录的id
2、从前4个id找最大id
3、大于最大等于id的前12



------解决方案--------------------
sql2000里没有row_number()
sql2005可以用row_number()

------解决方案--------------------
select * from
(select top 12 * from
(select top 15 * from tableName order by FieldName) T order by FiledName desc) T1
order by FieldName

------解决方案--------------------
SQL太奥妙了
------解决方案--------------------
select top 12 id from 你的表 where id not in (select top 3 id from 你的表order by id desc) order by id desc

这个才对
select top 15 * from (table) where id not in (select top 4 id from (table))
这个不包含第四条记录

其他我试了几个返回的记录根本不正确
------解决方案--------------------
以前很多贴子都有的.
------解决方案--------------------
select top 12 *
from
(
select top 15 *
from dbo.表
order by id asc
)lin
order by id desc

------解决方案--------------------
一下五种方法:
1.select top 4 * from(select top 15 * from table order by id desc) a