create TABLE STABLE(ID INT ,SNAME VARCHAR(30), SSCORE INT); --建表
--插数
INSERT INTO STABLE VALUES (1,'123' ,23);
INSERT INTO STABLE VALUES (2,'345' ,25);
INSERT INTO STABLE VALUES (3,'345' ,26);
SELECT * FROM STABLE --查询
UPDATE STABLE SET SSCORE = 27 where id = 3 --修改测试
--循环体
WHILE (SELECT AVG(SSCORE) FROM STABLE) < 300 --条件1 ,平均分没达到300分,进入循环的条件,也可能是结束循环条件
BEGIN
UPDATE STABLE
SET SSCORE = SSCORE * 2 --操作,平均分没超过三百分,所有分数乘以 2
SELECT MAX(SSCORE) FROM STABLE --中间查询语句,可以清楚看到执行后的变化效果
IF (SELECT MAX(SSCORE) FROM STABLE) > 600 --条件2,最大分不能大于600分,退出循环的条件
BREAK --满足条件2 退出 循环
ELSE
CONTINUE --条件1 还未满足,就一直循环
END
PRINT '更改完成';
--循环体
SELECT AVG(SSCORE) FROM STABLE --查询更改后的平均数