zoukankan      html  css  js  c++  java
  • SQL语句查询结果集中的动态修改案例(临时表+游标)

    曾经一位朋友问我这样一个问题:怎样在查询出来的结果集中增加一个新列(有规律)?
    如:数据库中的结构和数据如下: (tableName : People)
    Name           Age                                                                                                    
    changchang  20                                                 
    charles         23                                                  
    sunny          21 
    huangzhs     22                                                
    dazu            65                                                  
    现在通过SQL语句把查询的结果显示成:
    Id       Name              Age
    1       changchang       20
    2       Charles             23
    3       sunny               21
    4      huangzhs           22
    5       dazu                65
    首先分析这道题目:(动态的增加新的一列(递增))
    要在查询结果集中增加一个新列。而我们通过 select * from People 是没有ID这列的。
    所以我们需要在查询出来的结果集中增加(一行一行增加).
    实现要牵涉到的技术:
    首先想到的是通过游标来实现(游标可以遍历结果集中的每一条记录)。
    另外我们可以通过创建临时表或表变量来放增加新的列后的数据。
    最后通过查询临时表就可以让查询结果中包含新增加的一列.
    现在通过sql语句来实现上面的效果:

    --定义参数
    declare @i int
    declare @name varchar(50)
    declare @age int

    --声明一个游标
    declare c_people cursor
    for select * from people

    --打开游标
    open c_people

    --创建一个临时表
    create table #mypeople
    (Id int,
    Name varchar(50),
    Age int)

    set @i=1
    --读取数据
    fetch next from c_people into @name,@age
    while @@fetch_status=0
    begin
    --动态的增加新的一列到临时表
    insert into #mypeople
    values(@i,@name,@age)
    set @i=@i+1
    fetch next from c_people into @name,@age
    end
    --关闭游标
    close c_people
    --删除游标
    deallocate c_people
    --查询临时表
    select * from #mypeople
    --删除临时表
    drop table #mypeople

    以上是我想到的实现方法。当然看来还是比较复杂的。如果有什么简单的方案。希望朋友们能及时的提出。分享知识是我最大的快乐。

    另外:

    DECLARE @T TABLE(
    ID [INT] IDENTITY(1,1) NOT NULL
    , MYNAME NVARCHAR(50)
    )
    INSERT @T (MYNAME) SELECT MYNAME FROM USERS
    SELECT * FROM @T

    http://www.cnblogs.com/Charles2008/archive/2008/03/04/1090314.html

  • 相关阅读:
    企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理
    企业架构研究总结(37)——TOGAF企业连续体和工具之架构资源库及架构工具的选择
    企业架构研究总结(36)——TOGAF企业连续体和工具之企业连续体构成及架构划分
    SQL高级查询——50句查询(含答案) ---参考别人的,感觉很好就记录下来留着自己看。
    致不想奋斗的女人们
    16-Angular中的动画
    15-Angular的路由
    14-Angular供应商和自定义服务
    13-$location以及$interpolate等服务
    12-Angular的http与location
  • 原文地址:https://www.cnblogs.com/blsong/p/1856815.html
Copyright © 2011-2022 走看看