《T-SQL练习题参考答案(5页).doc》由会员分享,可在线阅读,更多相关《T-SQL练习题参考答案(5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-T-SQL练习题参考答案-第 5 页一、StudentInfo数据库已发给大家。其中包含两个表:stuInfo和stuMarks。根据这个数据库完成下列各题:1编写T-SQL查找李文才的左右同桌 ?分析:第一步,找出“李文才“的座位号;第二步,李文才的座位号加1或减1 /*-查找李文才的信息-*/DECLARE name varchar(8) -学员姓名SET name=李文才 -使用SET赋值SELECT * FROM stuInfo WHERE stuName = name/*-查找李文才的左右同桌-*/DECLARE seat int -座位号SELECT seat=stuSeat F
2、ROM stuInfo -使用SELECT赋值 WHERE stuName=nameSELECT * FROM stuInfo WHERE (stuSeat = seat+1) OR (stuSeat = seat-1)GO2. 统计并显示本班笔试平均分,如果平均分在70以上,显示“成绩优秀“,并显示前三名学员的考试信息;如果在70以下,显示“本班成绩较差“,并显示后三名学员的考试信息 。分析:第一步,统计平均成绩存入临时变量;第二步,用IFELSE判断;declare myavg float select myavg=avg(writtenExam) from stuMarks -使用sel
3、ect赋值print 本班的平均分:+convert(varchar(5),myavg)if (myavg70) begin print 本班笔试成绩优秀! select top 3 * from stuMarks order by writtenExam desc endelse begin print 本班笔试成绩优秀! select top 3 * from stuMarks order by writtenExam endgo 3. 本次笔试成绩较差,假定要提分,确保每人笔试都通过。提分规则很简单,先每人都加2分,看是否都通过,如果没有全部通过,每人再加2分,再看是否都通过,如此反复提
4、分,直到所有人都通过为止 。分析:第一步,统计没通过的人数 ;第二步,如果有人没通过,加分;第三步,循环判断。 declare n intwhile(1=1) -条件永远成立 begin select n=count(*) from stuMarks where writtenExam0) update stuMarks set writtenExam=writtenExam+2 -每人加2分 else break -退出循环 endprint 加分后的成绩如下:select * from stuMarks4. 请根据平均分和以下评分规则,编写T-SQL语句查询学员的成绩。 优 :90分以上
5、良 :8089分 中 :7079分 差 :6069分 不及格 :60分以下SELECT 考号=ExamNo,学号=stuNo,笔试=writtenExam,机试=labExam, 平均分=(writtenExam+labExam)/2, 等级= CASE WHEN (writtenExam+labExam)/2 par2 set par = par1 else set par = par2; return par endGo三、P248(4)declare ssex char(2)declare Cur_XS cursorfor select 性别 from 学生表 for update of 年龄open Cur_XSfetch next from Cur_XS into ssexwhile (fetch_status=0)begin if (ssex=女) delete from 学生表 where current of Cur_XS else update 学生表 set 年龄=年龄+1 where current of Cur_XS fetch next from Cur_XS into ssexendclose Cur_XSdeallocate Cur_XSgoselect * from 学生表go