首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 入门基础 >> 正文

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

    在下面的示例中,表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

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航