中易网

sql 存储过程里面如何 对数据集循环

答案:2  悬赏:60  
解决时间 2021-03-06 22:47
sql 存储过程里面如何 对数据集循环
最佳答案
A. 在简单的游标中使用 FETCH

以下示例为 Person.Contact 表中姓氏以字母 B 开头的行声明了一个简单的游标,并使用 FETCH NEXT 逐个提取这些行。FETCH 语句以单行结果集形式返回在 DECLARE CURSOR 中指定的列的值。
USE AdventureWorks
GO
DECLARE contact_cursor CURSOR FOR
SELECt LastName FROM Person.Contact
WHERe LastName LIKE 'B%'
ORDER BY LastName

OPEN contact_cursor

-- Perform the first fetch.
FETCH NEXT FROM contact_cursor

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
   -- This is executed as long as the previous fetch succeeds.
   FETCH NEXT FROM contact_cursor
END

CLOSE contact_cursor
DEALLOCATE contact_cursor
GO
B. 使用 FETCH 将值存入变量

以下示例与示例 A 相似,但 FETCH 语句的输出存储于局部变量而不是直接返回到客户端。PRINT 语句将变量组合成单一字符串并将其返回到客户端。
USE AdventureWorks
GO
-- Declare the variables to store the values returned by FETCH.
DECLARE @LastName varchar(50), @FirstName varchar(50)

DECLARE contact_cursor CURSOR FOR
SELECt LastName, FirstName FROM Person.Contact
WHERe LastName LIKE 'B%'
ORDER BY LastName, FirstName

OPEN contact_cursor

-- Perform the first fetch and store the values in variables.
-- Note: The variables are in the same order as the columns
-- in the SELECt statement. 

FETCH NEXT FROM contact_cursor
INTO @LastName, @FirstName

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN

   -- Concatenate and display the current values in the variables.
   PRINT 'Contact Name: ' + @FirstName + ' ' +  @LastName

   -- This is executed as long as the previous fetch succeeds.
   FETCH NEXT FROM contact_cursor
   INTO @LastName, @FirstName
END

CLOSE contact_cursor
DEALLOCATE contact_cursor
GO
全部回答
你就不能转换成list再用foreach吗?listlist=n.tolist()
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
用电脑玩手机神武关掉屏幕游戏会掉吗?
主机已连接好HP Laserjet M1005打印机怎样设
上海月月潮工贸有限公司在哪里啊,我有事要去
c语言,计算并输出3个float型数的最大值,并
铁质软还是质硬?
世界上总有一半人不理解另一半人的快乐。
老年人舌苔厚什么原因
想请问,买了150g茶叶,花了288元,多少一斤
战国时代!秦军攻赵国首都邯郸,平原君请赵王
烤鱼堂快乐烤吧蓬莱店怎么去啊,有知道地址的
中国科技大学校长是谁?
天赐埃康宝多少钱
代寨村在什么地方啊,我要过去处理事情
做硫和细铁丝的燃烧实验前都在集气瓶中先放一
一个男生好久没见了,我们只是在网上聊过。是
推荐资讯
天津六〇九电缆有限公司地址有知道的么?有点
过期的二代身份证能买火车票吗
头发染完黑色之后一天洗一回的话 多久能变自
自然卷可以不拉直不烫发而做出好看的发型吗
全民k歌用什么耳机好!
加工中心怎么铣外圆
赏析 不是每一道江河都能流入大海,但不流动
客来香烧烤地址在什么地方,想过去办事
周公解梦梦见被狗咬手背出血
峡江县市场和质量监督管理局水边分局我想知道
志兵酒店怎么去啊,有知道地址的么
胖子百货批发店我想知道这个在什么地方
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?