我对一个表进行操作,表数据见下图,想在一个临时表中添加一个字段,并根据表数据的score值输出是否合格。
下面是我拥游标写的语句,但是在sql执行总是出来很多table值,如何只要最后一个table,多谢各位指点~~
结果是下图:
我写的语句:
Declare @T_REGISTER_INFO TABLE
(
ID VARCHAR(36),
SCORE VARCHAR(20),
IS_PASS VARCHAR(20)
)
INSERT INTO @T_REGISTER_INFO(ID, SCORE)
SELECT * FROM dbo.demo
-- 定义游标mytestcursor:
declare mytestcursor cursor for
select * from @T_REGISTER_INFO
-- 打开游标mytestcursor:
open mytestcursor
--fetch取出游标所指的记录
fetch next from mytestcursor
/***************** begin of loop *******************************/
while @@fetch_status = 0
begin
UPDATE @T_REGISTER_INFO SET IS_PASS =
(
CASE
WHEN SCORE = 'A' THEN '优秀'
WHEN SCORE = 'B' THEN '及格'
WHEN SCORE = 'C' THEN '不及格'
END
)
fetch next from mytestcursor
end
/***************** end of loop *******************************/
/***********关闭游标,释放游标:***************/
close mytestcursor
deallocate mytestcursor
SELECT * FROM @T_REGISTER_INFO