写出一条Sql语句:取出表A中第10到第20记录(注意:ID可能不是连续的)

表1: id, name, typeid, titre;表2: typeid ,typename
查询 表1的全部字段 和表2 的typename 要求实现分页,每页要有10条数据,查询第二页 写出查询的select语句

第1个回答  2010-07-22
SELECT TOP 10 *
FROM (select a.*,b.typename from 表1 a left join 表2 b on a.typeid=b.typeid) a
WHERE ID >(SELECT MAX(id) FROM (SELECT TOP 20 id FROM 表1 ORDER BY id) b)
ORDER BY ID本回答被提问者采纳
第2个回答  2010-07-22
sql server:

前10条:
select top 10 * from 表 order by 需要排序的字段

11-20:
select * from
(select row_number() over (order by 需要排序的字段) as id,* from 表
)a
where id between 11 and 20
或者
select top 10 * from 表
where id not in (select top 10 * from 表 order by 需要排序的字段)
order by 需要排序的字段

oracle:
前10条:
select * from
(
select * from 表 order by 需要排序的字段
)
where rownum<=10

11-20:

select * from
(
select * from 表 order by 需要排序的字段
)
where rownum between 11 and 20

mysql:
前10条
select * from
(
select * from 表 order by 需要排序的字段
)a
limit 10
11-20条:
select * from
(
select * from 表 order by 需要排序的字段
)a
limit 11,10

---------
根据你的要求
将上面
from 表
替换为
from (select a.*,b.typename from 表1 a left join 表2 b on a.typeid=b.typeid) a
就可以了
第3个回答  2010-07-22
select * from (select *,row_number() over(order by c.id) tid from (select a.*,typename from tbl1 a,tbl2 b where a.typeid = b.typeid) c) where c.tid between 11 and 20
第4个回答  2010-07-22
select
top 10 * from (select b.*,c.typename from b left join c on b.typeid=c.typeid) b where id >(select id from (select top 20 id FROM b order by id) c)order by id

写出一条Sql语句:取出表A中第10到第20记录(注意:ID可能不是连续的)
WHERE ID >(SELECT MAX(id) FROM (SELECT TOP 20 id FROM 表1 ORDER BY id) b)ORDER BY ID

oracle 中如何实习一张表中查询出第10行至20行记录
可以看出,rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。为了解决这个问题,必须使用子查询 sql 代码 SQL> select rownum ,id,name from (select * from student order by name);ROWNUM ID NAME --- --- --- 1 200003 李三 ...

如何从表A中随机取出10条数据,SQL数据库
回答:1.MS SQL Server,随机查询20条 select top 20 * from 表名order by newid() 2.My SQL:,随机查询20条 select * from 表名 order by rand() limit 20

Oracle 中查询第11-20条记录的SELECT语句怎么写?
select rownum r,a from yourtable \/\/这里写你的表名 where rownum <= 20 order by name where r > 10 这样取出第11-20条记录!(先选再排序再选)

数据库读取中间几条记录的SQL语句
需要在sql语句中再重新嵌入一个 sql语句,下面看看 asp 和 php 中不同的 sql 读取中间几条记录。1 Access 采用top从表中取出第 M 条到第 N 条的记录(如N=M+10) select top N-M+1 * from [tableName] where (id not in (select top M-1 id from [tableName]))select top N-M+1...

好心人 提供一份用友net软件工程师的笔试、面试题
5、写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)select top 10 * from A where id not in (select top 30 id from A)5、 DataReader与DataSet有什么区别?(1)、dataset表示一个数据集,是数据在内存中的缓存。 可以包括多...

写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作...
..31条到40条就是10条数据 select top 10 * from 表名 where id not in (select id from 表名 )这样就可以过滤掉前面30条了,其中语句中的'id'值是用来过滤的,无论的你的ID是否连续,只要出现在子查询中的ID,主查询都会把他过滤掉,这样就可以实现31-40的查询了 望采纳 ...

...以自动增长的ID为主键,注意,ID可能不是连续的)
select * from tableA where ID >=31 and ID <= 40 这个是取ID值.select top 10 * from (select top 40 * from tableA order by ID) order by ID desc 这个是取按ID排序的第31到40条记录 第二个可能有点错误.. 你可以百度一下 select top 的语法 ...

帮忙推荐一套.net网站开发面试题,谢谢
根据您的知识,请简要谈一下您的思路答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。33.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。答:解1: select top 10 * from A where id not in (select top 30 id from A) ...

软件工程设计师 C#、ASP.NET开发面试一般都会笔试和面试哪些题目,谢谢...
You Found a file; else if ( fof is Directory ) FindFile( fof ); } } 33. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。 答:解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from...

相似回答