求SQL语句或存储过程

来源:百度知道 编辑:UC知道 时间:2024/05/11 23:52:05
有一个表字段有 产品ID,产品名称,厂家名称
要求是:
想要分页 并且在一页中要查出不同厂家名称的3条记录,
比如厂家名称有Mirosoft 和IBM 它们都有自己的产品
在传入页号1时在这一页中包含microsoft和IBM各3条记录也就是6条
在传入页号2时在这一页中包含microsoft和IBM的下一个3条记录也是6条
不知道我表达清楚了没有 呵呵 偶表达能力差 请见谅
用的是SQL Server 2000

借用5楼代码
[sql server]

select top 3 * from table
where 产品id>(
select max(产品id) from
(
select top ((page-1)*3) 产品id
from table
where 产品id = 'microsoft'
order by 产品id asc
) as t
) order by 产品id asc
union all
select top 3 * from table
where 产品id>(
select max(产品id) from
(
select top ((page-1)*3) 产品id
from table
where 产品id = ibm
order by 产品id asc
) as t
) order by 产品id asc

[oracle]

SELECT * FROM 表名 WHERE 厂家名称 = 'microsoft' where rownum between ((page-1)*3+1) and (page*3)
union all
SELECT * FROM 表名 WHERE 厂家名称 = 'IBM' where rownum between ((page-1)*3+1) and (page*3)

可以在页面上分着做2个数据源 用2次查询语句 page为页数变量

SELECT TOP page*3 * FROM 表名 WHERE 厂家名称 = 'microsoft';
SELECT TOP page*3 * FROM 表名 WHERE 厂家名称 = 'IBM';

如果用ado编程的话:

rs.pagesize = 100

rs