-
从表表中提取从 m 到 n 的记录:(不在版本中)。
select top n-m+1 *
from table
where (id not in (select top m-1 id from table ))
将表中的记录检索到 n(存在版本)。
select top n-m+1 * from table as a where not exists
select * from (select top m-1 * from table order by id) b where )
order by id
m为上标,n为下标,取第8到12条记录,m=8,n=12,table为表名。
select top n-m+1 * from table
where id>(select max(id) from
select top m-1 id from table order by id asc) temp)
order by id asc
-
select top 10 *
from a
where id not in (select top 20 id from a order by id)
首先,在子查询中查询前 20 行记录。
不在前 20 行中的记录以 id 输出。
在外部查询中,只允许输出匹配表的前 10 行,正好是 21 到 30 行。 呵呵。
-
SQL 2005 具有 row number() 函数。
select row_number() over(order by id) as list_id,* from a
其中列表 id>20 和列表 id<31 如果是sql2000,基本上只能是top....not in, not in 是最不有效的语句。
select top 10 *
from a
where id not in (select top 20 id from a order by id)
-
顶部是sqlserver,oracle使用rownum,oracle中rownum的用法是只能尝试rownum<,而不能使用rownum>
between 也行不通,所以我支持 zhenzhi4444 的方法。
-
select * from table where rownum<31
minusselect * from table where rownum<21
取出前 30 条记录减去前 20 条记录。
-
select top 10 * from table where id not in select top 20 * from table)
如有必要,请按 ID 排序以确保正确性。
-
有那么复杂吗?。。
select *from a where id>=21 and id<=30 order by id desc.不是这样。
测试并通过。
-
我是带着这个问题来的。
通过。 从表 ID 不在的表中选择前 10 * (从表中选择前 20 个表 ID)。
update t1 set c1=isnull(c1,0),c2=isnull(c2,0)..
如果你觉得拼接很麻烦,你可以用Excel用公式生成这个列表。 >>>More
可以解决! ()
1. 首先,将 XuekeId 和 Id 字段添加到现有表中,并使用 loop 语句更新 XuekeId 字段。 >>>More
这个SQL有点麻烦,所以它简单明了。
select id,name,type,score from student where type='小学生' limit 2 union select id,name,type,score from student where type='中学生' limit 2 ; >>>More