初学游标,大家帮我看看为啥不对呀

zjj1211 2010-03-04 11:13:32
这是我建的表和数据
CREATE TABLE Candidate1 (cName CHAR(6) PRIMARY KEY,
cPhone CHAR(11),siScore SMALLINT
)
-------------------------------
INSERT INTO Candidate1 VALUES ('刘晓亮','13703236886',90)
INSERT INTO Candidate1 VALUES('孙红娟','13803992299',70)
INSERT INTO Candidate1 VALUES('李明传','13902199889',80)
------------------------------
这是我写的游标
DECLARE @Count int
DECLARE @Name CHAR(6),@Phone CHAR(11),@Score SMALLINT
DECLARE my_cur CURSOR FOR SELECT * FROM Candidate1
OPEN my_cur
select @Count=COUNT(*) FROM Candidate1
WHILE (@@FETCH_STATUS=0 AND @Count>0)
BEGIN
FETCH NEXT FROM my_cur INTO @Name,@Phone,@Score
CASE
WHEN @Score>90 THEN PRINT @Name+@Phone+'优秀'
WHEN @Score>=80 AND @Score<90 THEN PRINT @Name+@Phone+'良好'
WHEN @Score>=60 AND @Score<80 THEN PRINT @Name+@Phone+'及格'
ELSE PRINT @Name+@Phone+'不及格'
SET @Count=@Count-1
END
CLOSE my_cur
DEALLOCATE my_cur
---------------------------
我要是用if...else 结构就正确了,我想用case..when...then..结构实现
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xman_78tom 2010-03-04
  • 打赏
  • 举报
回复

declare @msg varchar(100);

set @msg=
CASE
WHEN @Score>90 THEN @Name+@Phone+'优秀'
WHEN @Score>=80 AND @Score <90 THEN @Name+@Phone+'良好'
WHEN @Score>=60 AND @Score <80 THEN @Name+@Phone+'及格'
ELSE @Name+@Phone+'不及格' end ;

print @msg
黄_瓜 2010-03-04
  • 打赏
  • 举报
回复
用case when 的时候 把print 去掉
  • 打赏
  • 举报
回复
看联机帮助中case when else 的用法
  • 打赏
  • 举报
回复
DECLARE @Count int
DECLARE @Name CHAR(6),@Phone CHAR(11),@Score SMALLINT
DECLARE my_cur CURSOR FOR SELECT * FROM Candidate1
OPEN my_cur
FETCH FROM my_cur INTO @Name,@Phone,@Score
WHILE (@@FETCH_STATUS=0 )
BEGIN

CASE --换成if else
WHEN @Score>90 THEN PRINT @Name+@Phone+'优秀'
WHEN @Score>=80 AND @Score <90 THEN PRINT @Name+@Phone+'良好'
WHEN @Score>=60 AND @Score <80 THEN PRINT @Name+@Phone+'及格'
ELSE PRINT @Name+@Phone+'不及格'
FETCH NEXT FROM my_cur INTO @Name,@Phone,@Score
END
CLOSE my_cur
DEALLOCATE my_cur

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧