存储过程/使用while和游标

                                                存储过程/使用while和游标

先建立一个表:

CREATE TABLE Studentgrade
(id INT IDENTITY(1,1), --学生ID或者用学号
 name VARCHAR(40), --姓名
 grade INT--成绩
 )
 
 SELECT * FROM Studentgrade
 
 INSERT Studentgrade
 VALUES('东郭先生',30)
 INSERT Studentgrade
 VALUES('南郭先生',60)
 INSERT Studentgrade
 VALUES('诸葛亮',70)
 INSERT Studentgrade
 VALUES('张飞',10)
 INSERT Studentgrade
 VALUES('刘备',90)

 

 

-- Author:  rorger
-- Create date: 2010-10-18 20:13:10
-- Description:   统计不及格学生数

-- =============================================
CREATE PROCEDURE CountGradeNotPass
 -- Add the parameters for the stored procedure here
 @number INT OUTPUT
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
     DECLARE @id int
     DECLARE @name VARCHAR(40)
     DECLARE @grade INT
     SET @number=0
   DECLARE cursor1 CURSOR FOR
  SELECT * FROM Studentgrade
  OPEN cursor1
  FETCH NEXT FROM cursor1 INTO @id,@name,@grade
  WHILE  @@FETCH_STATUS=0
  BEGIN
     IF @grade <60
         SET @number=@number+1
         FETCH NEXT FROM cursor1 INTO @id,@name,@grade
  END
 
  CLOSE cursor1
    DEALLOCATE cursor1
  END
GO


DECLARE @number INT
EXEC CountGradeNotPass @number OUTPUT
PRINT '不及格人数为:'+STR(@number)+' 个'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值