• 存储过程表的循环


    存储过程表的循环  

    以下以SQL Server 2000中的NorthWind数据库中的Customers表为例,

    用 临时表 + While循环 的方法, 对Customers表中的CompanyName列进行遍历

    create table #temp

    (

      id int identity(1,1),

      customer nvarchar(50)

    )

    declare @customer nvarchar(50)

    declare @n        int

    declare @rows     int

    select @n=1

    insert #temp(customer) select distinct companyname from customers

    select @rows = @@rowcount

     

    while @n <= @rows

    begin

    select @customer = companyname

    from customers

         where companyname=(select customer from #temp where id = @n)

    order by companyname desc

     

    print(@customer)

     

    select @n = @n + 1

     

    end

    运行后, 输出结果如下:

    (所影响的行数为 91 行)

     

    Alfreds Futterkiste

    Ana Trujillo Emparedados y helados

    Antonio Moreno Taquería

    Around the Horn

    Berglunds snabbk?p

    Blauer See Delikatessen

    Blondesddsl père et fils

    Bólido Comidas preparadas

    Bon app'

    Bottom-Dollar Markets

    B's Beverages

    Cactus Comidas para llevar

    Centro comercial Moctezuma

    Chop-suey Chinese

    Comércio Mineiro

    Consolidated Holdings

    Die Wandernde Kuh

    Drachenblut Delikatessen

    Du monde entier

    Eastern Connection

    Ernst Handel

    Familia Arquibaldo

    FISSA Fabrica Inter. Salchichas S.A.

    Folies gourmandes

    Folk och f? HB

    France restauration

    Franchi S.p.A.

    Frankenversand

    Furia Bacalhau e Frutos do Mar

    Galería del gastrónomo

    Godos Cocina Típica

    Gourmet Lanchonetes

    Great Lakes Food Market

    GROSELLA-Restaurante

    ...... (以下略) ..................................

     

     

    SQL查询遍历数据方法二 [ 游标 + While循环] 以下以SQL Server 2000中的NorthWind数据库中的Customers表为例,

     

    用  游标(Cursor) + While循环 的方法, 对Customers表中的CompanyName列进行遍历

     

     

    declare @customer nvarchar(50)

     

     

    declare pcurr cursor for

    select distinct companyname from customers

     

    open pcurr

    fetch next from pcurr into @customer

     

     

    while (@@fetch_status = 0)

    begin

     

     

     print (@customer)

     fetch next from pcurr into @customer

     

     

    end

     

    close pcurr

    deallocate pcurr

     

     

     

    运行后, 输出结果如下:

     

     

    (所影响的行数为 91 行)

     

    Alfreds Futterkiste

    Ana Trujillo Emparedados y helados

    Antonio Moreno Taquería

    Around the Horn

    Berglunds snabbk?p

    Blauer See Delikatessen

    Blondesddsl père et fils

    Bólido Comidas preparadas

    Bon app'

    Bottom-Dollar Markets

    B's Beverages

    Cactus Comidas para llevar

    Centro comercial Moctezuma

    Chop-suey Chinese

    Comércio Mineiro

    Consolidated Holdings

    Die Wandernde Kuh

    Drachenblut Delikatessen

    Du monde entier

    Eastern Connection

    Ernst Handel

    Familia Arquibaldo

    FISSA Fabrica Inter. Salchichas S.A.

    Folies gourmandes

    Folk och f? HB

    France restauration

    Franchi S.p.A.

    Frankenversand

    Furia Bacalhau e Frutos do Mar

    Galería del gastrónomo

    Godos Cocina Típica

    Gourmet Lanchonetes

    Great Lakes Food Market

    GROSELLA-Restaurante

    ...... (以下略) ..................................

  • 相关阅读:
    第七章 深入理解多态
    第六章 继承和多态
    第五章 体验套餐管理系统
    第四章 深入类的方法
    第三章 使用集合组织相关数据
    第二章 深入C#数据类型
    mysql 创建表字段类型笔记
    梳理下phpmyadmin改root密码后登录不上的问题。
    easyui 验证控件 tooltip message显示位置
    random模块详解
  • 原文地址:https://www.cnblogs.com/mili3/p/3396781.html
Copyright © 2020-2023  润新知