mysql 游标循环读取下一行的问题

declare@orderidNVARCHAR(50)DECLAREmycursorCURSORFORselectIDfromGM_OrderOPENmycursorFE... declare @orderid NVARCHAR(50)DECLARE mycursor CURSOR FORselect ID from GM_Order OPEN mycursorFETCH NEXT FROM mycursor INTO @orderidselect ID from GM_Order WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM mycursor INTO @orderid SELECT @orderid END CLOSE mycursorDEALLOCATE mycursor--想要输出的结果是1,2为什么都是2 展开
 我来答
百度网友f9f2af3
推荐于2016-10-14 · TA获得超过357个赞
知道小有建树答主
回答量:385
采纳率:0%
帮助的人:238万
展开全部
这 句话的位置错了..
FETCH NEXT FROM mycursor INTO @orderid

declare @orderid NVARCHAR(50)
DECLARE mycursor CURSOR FOR
select ID from GM_Order
OPEN mycursor
FETCH NEXT FROM mycursor INTO @orderid
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @orderid
FETCH NEXT FROM mycursor INTO @orderid
END
CLOSE mycursor
DEALLOCATE mycursor
追问

  mycursor 这个游标都没定义  你能这样?哈哈,原来上面的就是答案 谢谢了!

  呵呵  好了 解决了  是输出顺序的问题  我改成IF判断后才明白他的原理。

  第一个 FETCH NEXT FROM  mycursor  INTO @orderid 是给他起始位置 初始第一行记录

  WHILE 中的FETCH NEXT FROM  mycursor  INTO @orderid 使他继续执行 这里记录会加1   因为表里面只有2条数据 SELECT又是在后面那个输出所以都是2    把SELECT放中间就好了

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式