您的位置:首页 > 数据库

sql 双层游标嵌套

2012-05-09 22:59 246 查看
--创建存储数据临时表

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: