码迷,mamicode.com
首页 > 数据库 > 详细

T-SQL(2)-逻辑控制(芮)

时间:2014-11-13 18:25:53      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   ar   sp   div   on   

 
逻辑控制语句
 
(1IF-ELSE语句
bubuko.com,布布扣
 
问题:
统计并显示本班笔试平均分,如果平均分在70以上,显示“成绩优秀“,并显示前三名学员的考试信息;如果在70以下,显示“本班成绩较差“,并显示后三名学员的考试信息 。
分析:
第一步,统计平均成绩存入临时变量;
第二步,用IF-ELSE判断;
例子:
DECLARE @myavg float
SELECT @myavg=AVG(writtenExam) FROM stuMarks
print ‘本班平均分’+convert(varchar(5),@myavg) 
if(@myavg>70)
BEGIN
       print ‘本班笔试成绩优秀,前三名的成绩为:’
       SELECT TOP 3 * FROM stuMarks ORDER BY writtenExam DESC
END
ELSE
BEGIN
       print ‘本班笔试成绩较差,后三名的成绩为:’
       SELECT TOP 3 * FROM stuMarks ORDER BY writtenExam
END2) WHILE循环语句
 bubuko.com,布布扣
 
问题:
本次考试成绩较差,假定要提分,确保每人笔试都通过。提分规则很简单,先每人都加2分,看是否都通过,如果没有全部通过,每人再加2分,再看是否都通过,如此反复提分,直到所有人都通过为止 。
分析:
第一步,统计没通过的人数 ;
第二步,如果有人没通过,加分;
第三步,循环判断。
例子:
DECLARE @n int
WHILE(1=1) --条件永远成立
  BEGIN
    SELECT @n=COUNT(*) FROM stuMarks
            WHERE writtenExam<60    --统计不及格人数
    IF (@n>0)
       UPDATE stuMarks     --每人加2分
            SET writtenExam=writtenExam+2
   ELSE
       BREAK    --退出循环
  END
print 加分后的成绩如下:
SELECT * FROM stuMarks
 
(3CASE-END多分支语句
CASE
  WHEN 条件1 THEN  结果1
  WHEN 条件2 THEN  结果2
  ……
  ELSE 其他结果
END
问题:
采用美国的ABCDE五级打分制来显示笔试成绩。
 A级:   90分以上
 B级:   80-89分
 C级:   70-79分
 D级:   60-69分
 E级:   60分以下
例子:
print  ABCDE五级显示成绩如下:
SELECT stuNo,
   成绩= CASE 
                  WHEN writtenExam<60 THEN E
                  WHEN writtenExam BETWEEN 60 AND 69 THEN D
                  WHEN writtenExam BETWEEN 70 AND 79 THEN C
                  WHEN writtenExam BETWEEN 80 AND 89 THEN B
                  ElSE    A
              END
      FROM stuMarks

 

T-SQL(2)-逻辑控制(芮)

标签:des   style   blog   http   color   ar   sp   div   on   

原文地址:http://www.cnblogs.com/ruishuang208/p/4095270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!