用一个实例讲解如何正确使用数据库游标

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

在下面的示例中,表className中有如下分类:

具体示例:

classID className

1 衣服

2 裤子

5 帽子

10 鞋子

表productInfo有如下记录:

productID productName parentID clickNum

1 男士衣服 1 90 --衣服类别中这条记录的点击率最高

2 女士衣服 1 80

3 男士裤子 2 70

4 女士裤子 2 90

--裤子类别中这条记录点击率最高

5 男士帽子 5 15

6 女士帽子 5 30

帽子类别中这条点击率最高

7 男士鞋子 10 65

--鞋子类别中这条点击率最高

8 女士鞋子 10 52

9 女士鞋子1 10 54

现在我们要求分别把衣服,裤子,帽子,鞋子这些类别中点击率最高的一条记录找出来,然后再降序排列,结果如下:

productID productName clickNum

1 男士衣服 90

4 女士裤子 90

7 男士鞋子 65

6 女士帽子 30

实现方法:

declare @temp table

(

productID int,

productName nvarchar(30),

clickNum int

)

declare @classID int

declare cursor_classID cursor

for

select classID from dbo.className

open cursor_classID

fetch next from cursor_classID into @classID

--0 表示 FETCH 语句成功

while @@FETCH_STATUS=0

begin

insert into @temp

select top 1 productID,productName,clickNum from dbo.productInfo

where parentID = @classID

order by clickNum desc

fetch next from cursor_classID into @classID

end

close cursor_classID

deallocate cursor_classID

select * from @temp order by clickNum desc

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航