请教个 关于 case语法的问题

youlingsxcn 2009-01-27 03:46:28
use student1
go
if exists(select * from sysobjects where type='p' and name like '%proctmp%')
drop proc tmp_proctmp
go
create proc tmp_proctmp @编号 nvarchar(10) ,@math nvarchar(10) output

as
set @math='0'
select @math=b.数学 from class1 a,class1score b where a.编号=@编号 and b.编号=@编号
--case when @math<'60' then ..... - 想如果成绩<60 就输出 不及格赋值给@math
--我怎么写case都是错的 求教各位高人~BTW:过年好~




练手2:
declare @t nvarchar(2)

select @t=数学 from class2score where 编号='11'
CASE when @t<'20'
then 'ok'
end

这样写case 也报一样的错误。。。case 怎么用啊 我看跟帮助里 写的一样么 迷糊 求教~~~
...全文
152 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxj828282 2009-01-29
  • 打赏
  • 举报
回复
case语句很烦
youlingsxcn 2009-01-28
  • 打赏
  • 举报
回复
谢谢啊 楼上的测试通过。。
~
律己修心 2009-01-27
  • 打赏
  • 举报
回复
set @math='0'
select @math=b.数学 from class1 a,class1score b where a.编号=@编号 and b.编号=@编号
--case when @math <'60' then ..... - 想如果成绩 <60 就输出 不及格赋值给@math
--我怎么写case都是错的 求教各位高人~BTW:过年好~



select @math= case when b.数学 < 60 then b.数学 else '0' end--如果成绩 <60 就输出真实成绩,否则输出0
from class1 a,class1score b where a.编号=@编号 and b.编号=@编号


ljhcy99 2009-01-27
  • 打赏
  • 举报
回复
1,用 if else 结构
2,
select @math =
case when b.数学<60 then b.数学
when b.数学 ... then ...
else ... end
msx3525650 2009-01-27
  • 打赏
  • 举报
回复
我觉得应该给CASE复一个制。。
如:
CASE=成绩 when @t<'20' then 'ok'
end

34,592

社区成员

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

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