例如:写一个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
区间的话,需要用and来进行双条件替换,不能直接 2
解释:and表示的是必须同时满足条件,也就是说查询出id大于2并且小于5( 2
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 ,日期肯定要换,时间就设置成固定就可以了.
你做过分页嘛,分页的sql跟你的需求不是完全一致的嘛!
如果是查第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)