存储过程中结果集的循环问题

hnymx2005 2011-06-18 04:06:26
有二个表:学生表(ID,姓名,年龄);成绩表(ID,总分,评定)
写一个存储过程:
一个结果集:select ID from 学生表 where 年龄>'15',现在想在这些ID的学生中把表“成绩表”中总分大于500分的学生的评定为好,如何写过程
...全文
99 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazy_boom 2011-06-18
  • 打赏
  • 举报
回复

create proc student
as
begin
select a.id,a.姓名,a.年龄,b.总分,
case when a.年龄>15 and isnull(b.总分,0)>500 then '好' else '良' end as 评定
from 学生表 a left join 成绩表 b on a.id=b.id
order by a.id
end
AcHerat 元老 2011-06-18
  • 打赏
  • 举报
回复
晴天大大学过厚黑学。。。
-晴天 2011-06-18
  • 打赏
  • 举报
回复
很惊讶年龄还有用字符串来表达的!
年龄为'8',和年龄为'15',哪个大?!
declare @a varchar(10),@b varchar(10)
set @a=8
set @b=15
select case when @a<@b then '对' else '错' end
/*
----


(1 行受影响)

*/
AcHerat 元老 2011-06-18
  • 打赏
  • 举报
回复

update 学生表
set 评定 = (case when 成绩 > 500 then '好' end)
where 年龄>'15'
AcHerat 元老 2011-06-18
  • 打赏
  • 举报
回复

select ID,(case when 成绩 > 500 then '好' end) as 评定
from 学生表
where 年龄>'15'
cd731107 2011-06-18
  • 打赏
  • 举报
回复
update 成绩表 
set 评定='好'
from 学生表
where 成绩表.id=学生表.id
and 总分>500
and 年龄>'15'
GoAwayZ 2011-06-18
  • 打赏
  • 举报
回复
update 成绩表 set 评定='好' where 总分>500 
and id in(select ID from 学生表 where 年龄>'15')

34,594

社区成员

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

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