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

2024-12-27 04:49:00
推荐回答(5个)
回答1:

例如:写一个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

回答2:

区间的话,需要用and来进行双条件替换,不能直接 2sql: select * from tablname where id >2 and id<5;
解释:and表示的是必须同时满足条件,也就是说查询出id大于2并且小于5( 2

回答3:

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 ,日期肯定要换,时间就设置成固定就可以了.

回答4:

你做过分页嘛,分页的sql跟你的需求不是完全一致的嘛!

回答5:

如果是查第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)