SQL语句选取某个区间的记录怎么编写

原来的语句
sql="select top 1 * from nsort order by nsort_id desc"这句查询范围只是符合条件中的第一条记录,并不能满足我的要求。请高手就用我上面的句子改过来。
请问如果是指定第5条至第8条记录呢?
还有,如果指定是第5条、第8条、第10条,这样又怎么编写呢?这两个意思请帮忙分开来写

例如:写一个SQL语句,取出表S中第21~30记录(SQL server,以自动增长的ID作为主键,ID可能不连续)

方法一:

Select TOp10 * from S 

Where ID>(Select MAX(ID) from (Select Top20 ID from S ) as S)

方法二:

select Top10 * from S where ID NOT IN(select Top20 ID from S)

扩展资料

SQL SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

SQL SELECT 语法

SELECT 列名称 FROM 表名称

以及:

SELECT * FROM 表名称

注释:SQL 语句对大小写不敏感。SELECT 等效于 select。

SQL SELECT 实例:

如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:

SELECT LastName,FirstName FROM Persons

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-01
区间的话,需要用and来进行双条件替换,不能直接 2<id<5的形式。
sql: select * from tablname where id >2 and id<5;
解释:and表示的是必须同时满足条件,也就是说查询出id大于2并且小于5( 2<id<5)的所有值。
第2个回答  2011-09-21
ConsumeTime between cast(GetDate()-0.5 as int) and GetDate()

GetDate()是现在系统时间
GetDate()-0.5是12小时前的时间
所以你上边的sql语句是查询时间以前12个小时的数据,如果想查询固定的早上或者中午的数据,如果是通过sql查询分析器则可以直接把查询时间段替换一下即可
如查询今天中午的可以用
ConsumeTime between 2008-10-21 8:00:00 and 2008-10-21 14:00:00
,如果是别的软件,可以把ConsumeTime后的条件设置为参数,当选择早上时就查询1900-1-1 1900-1-1 8:00:00 之间的数据,当查询中午 就把参数替换为1900-1-1 8:00:00 1900-1-1 14:00:00 ,日期肯定要换,时间就设置成固定就可以了.
第3个回答  2011-09-20
你做过分页嘛,分页的sql跟你的需求不是完全一致的嘛!
第4个回答  推荐于2017-09-20
如果是查第5---->8条的话。
select * from (
select top 1 * from nsort order by nsort_id desc
) t where t.rowmun>5 and rownum <8;
如果是地, 5.8.10
select * from (
select top 1 * from nsort order by nsort_id desc
) t where t.rownum in (5,8,10)追问

不行,你有没有测试过的

追答

我给你写的是伪代码吗,大致思想就是这样的。

本回答被提问者采纳
相似回答