SQL While 和 if 循环
Posted
技术标签:
【中文标题】SQL While 和 if 循环【英文标题】:SQL While and if loop 【发布时间】:2021-03-23 16:25:34 【问题描述】:我正在尝试在 sql 中编写一个 while 循环,但它不能。我正在尝试查看所有行,如果学生的最终分数 >60,我想更新他的分数作为通过。
while(select Result from Student) IS NOT NULL
begin
IF ( select Final_Score from Student )> 60
begin
update Student set Result='Passed'
end
else
begin
update Student set Result='Failed'
end
end
我想使用 While 循环。我该怎么做? 谢谢
【问题讨论】:
【参考方案1】:你可以这样写:
update Student set Result=CASE WHEN Final_Score > 60 THEN 'Passed' ELSE 'Failed' END
基于单个集合的查询将比循环更高效。
【讨论】:
我得到了这个错误子查询返回了超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。 for while 子句 @fd2812 在我的示例中没有 suqbquery。这是单语句操作【参考方案2】:SQL 是一种查询语言,没有任何过程元素(循环、条件)。
您想要的条件只需用 WHERE 子句表示:
update student
set result = 'Passed'
where final_score > 60;
update student
set result = 'Failed'
where final_score <= 60;
您也可以使用 CASE 表达式并只运行一个 UPDATE 语句
update student
set result = case
when final_score > 60 then 'Passed'
else 'Failed'
end;
【讨论】:
以上是关于SQL While 和 if 循环的主要内容,如果未能解决你的问题,请参考以下文章