冰天雪地赤身裸体跪求SQL存储过程代码

苍月 2009-05-15 10:45:13
创建带输入参数的存储过程
创建一个带输入参数的存储过程proc_student,其中的输入参数用于接收课程号CNO,默认为“C601”,然后在表study中查询该成绩不几个的学生学号,接着在student表中查找这些学生的基本信息,包括学号,姓名,性别和所在系信息,最后输出。
student表的属性为SNO NAME AGE DEPT SEX
COURSE表的属性CNO CNAME
STUDY 表的属性SNO CNO GRADE..
...全文
197 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunanseo 2009-05-17
  • 打赏
  • 举报
回复
学习了!
yy523295 2009-05-17
  • 打赏
  • 举报
回复
学习!
sunnyhack 2009-05-16
  • 打赏
  • 举报
回复
学习。。
hnsdwhl 2009-05-16
  • 打赏
  • 举报
回复
不对,应该将两个表进行连接。
 
create proc sp_selstu
@cno varchar(10)=c601
as
select SNO,Name,Sex,Dept from student
where exists(select 1 from study inner join course
where study.sno=student.sno and cno=@cno and grade <60)

hnsdwhl 2009-05-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jia_guijun 的回复:]
SQL code/*
调用: exec sp_selstu 'c601'
*/
create proc sp_selstu
@cno varchar(10)=c601
as
select SNO,Name,Sex,Dept from student a
where exists(select 1 from study where sno=a.sno and cno=@cno and grade<60)
GO
[/Quote]
5楼的好像漏了一个表名course。
where exists(select 1 from study,course where sno=a.sno and cno=@cno and grade<60)


lvfeng19806001 2009-05-16
  • 打赏
  • 举报
回复
支持5楼
InsistOnDoing 2009-05-16
  • 打赏
  • 举报
回复
速度都相当快啊
fuda_1985 2009-05-16
  • 打赏
  • 举报
回复
别人已经解决了!
rhythmling 2009-05-16
  • 打赏
  • 举报
回复
学习
liuluanqing 2009-05-15
  • 打赏
  • 举报
回复
[code=
--建立存储过程
CREATE PROCEDURE info_stu
@CNO char ='C601', @stu_list cursorvary OUTPUT
AS
declare @STUDENTno as char
DECLARE stu CURSOR
FOR SELECT 学号=SNO ,姓名=name,所在系信息=dept FROM study a left join student b on a.sno=b.sno where a.grade='不及格' and a.CNO=@cno
set @stu_list=stu
open @stu_list
GO
]
--执行该存储过程
DECLARE @DispData CURSOR
EXECUTE info_stu @CNO,@stu_list=@DispData OUTPUT
FETCH NEXT FROM @DispData --循环输出游标内容
WHILE (@@FETCH_STATUS=0)
FETCH NEXT FROM @DispData
CLOSE @DispData
DEALLOCATE @DispData
GO
[/code]
ks_reny 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 forkerrigan 的回复:]
引用 5 楼 jia_guijun 的回复:
SQL code/*
调用: exec sp_selstu 'c601'
*/
create proc sp_selstu
@cno varchar(10)=c601
as
select SNO,Name,Sex,Dept from student a where exists(select 1 from study where sno=a.sno and cno=@cno and grade <60)
GO


有输出吗大哥?
请问下那个 a是?
select 1? ....
[/Quote]
執行后就有輸出呀, a 是別名, select 1 是為了提高效率 只要有結果就返回真條件.
qqlovebibi 2009-05-15
  • 打赏
  • 举报
回复
学习学习。。。
苍月 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jia_guijun 的回复:]
SQL code/*
调用: exec sp_selstu 'c601'
*/
create proc sp_selstu
@cno varchar(10)=c601
as
select SNO,Name,Sex,Dept from student a where exists(select 1 from study where sno=a.sno and cno=@cno and grade<60)
GO
[/Quote]

有输出吗大哥?
请问下那个 a是?
select 1? ....
苍月 2009-05-15
  • 打赏
  • 举报
回复
成绩是GRADE
jia_guijun 2009-05-15
  • 打赏
  • 举报
回复
/*
调用: exec sp_selstu 'c601'
*/
create proc sp_selstu
@cno varchar(10)=c601
as
select SNO,Name,Sex,Dept from student a where exists(select 1 from study where sno=a.sno and cno=@cno and grade<60)
GO
ks_reny 2009-05-15
  • 打赏
  • 举报
回复
成績是哪個字段?
百年树人 2009-05-15
  • 打赏
  • 举报
回复
这个时候到哪去找雪地?
苍月 2009-05-15
  • 打赏
  • 举报
回复
高手啊高手啊高手
苍月 2009-05-15
  • 打赏
  • 举报
回复
在线等 ...
焦急中...
wu222w 2009-05-15
  • 打赏
  • 举报
回复
帮顶
加载更多回复(4)

34,593

社区成员

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

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