sql 双层游标嵌套

   --创建存储数据临时表

  CREATE TABLE Temp_Dep(TEMP_depid varchar(50),TEMP_depname VARCHAR(50),TEMP_NAME varchar(5000))

   --向临时表中插入前三列数据

   INSERT INTO Temp_Dep(TEMP_depid,TEMP_depname) SELECT DISTINCT A.DEPT_NO,B.DEPT_NOTE FROM dbo.HES_EMPLOYEE A JOIN dbo.HES_DEPT

  B ON A.DEPT_NO = B.DEPT_NO WHERE STATUS IN ('zaizhi','shiyong')

    --创建查询小组编号的游标

    DECLARE Somedepid_cusor CURSOR FOR

    SELECT DISTINCT TEMP_depid FROM Temp_Dep

   OPEN  Somedepid_cusor

   FETCH NEXT FROM Somedepid_cusor INTO @TEMP_depid

   WHILE @@FETCH_STATUS=0

   BEGIN

        --创建查询员工数据游标

        SET @TEMP_SomeNAME=''

        DECLARE SomeNAME_cusor CURSOR FOR

         SELECT NAME FROM dbo.HES_EMPLOYEE WHERE DEPT_NO=@TEMP_depid AND STATUS IN ('zaizhi','shiyong')

        OPEN  SomeNAME_cusor

        FETCH NEXT FROM SomeNAME_cusor INTO @TEMP_NAME

        WHILE @@FETCH_STATUS=0

        BEGIN

            SET  @TEMP_SomeNAME=RTRIM(@TEMP_SomeNAME)+RTRIM(@TEMP_NAME)+','

            FETCH NEXT FROM SomeNAME_cusor INTO @TEMP_NAME

        END

        CLOSE SomeNAME_cusor

        DEALLOCATE SomeNAME_cusor

       --更新数据

      UPDATE dbo.Temp_Dep SET TEMP_NAME=@TEMP_SomeNAME WHERE TEMP_depid=@TEMP_depid

      FETCH NEXT FROM Somedepid_cusor INTO @TEMP_depid

   END

   CLOSE Somedepid_cusor

   DEALLOCATE Somedepid_cusor

  --查询数据

   SELECT * FROM Temp_Dep

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值