首页 > 代码库 > T-SQL(2)-逻辑控制(芮)

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

 逻辑控制语句 (1IF-ELSE语句 问题:统计并显示本班笔试平均分,如果平均分在70以上,显示“成绩优秀“,并显示前三名学员的考试信息;如果在70以下,显示“本班成绩较差“,并显示后三名学员的考试信息 。分析:第一步,统计平均成绩存入临时变量;第二步,用IF-ELSE判断;例子:DECLARE @myavg floatSELECT @myavg=AVG(writtenExam) FROM stuMarksprint ‘本班平均分’+convert(varchar(5),@myavg) if(@myavg>70)BEGIN       print ‘本班笔试成绩优秀,前三名的成绩为:’       SELECT TOP 3 * FROM stuMarks ORDER BY writtenExam DESCENDELSEBEGIN       print ‘本班笔试成绩较差,后三名的成绩为:’       SELECT TOP 3 * FROM stuMarks ORDER BY writtenExamEND2) WHILE循环语句  问题:本次考试成绩较差,假定要提分,确保每人笔试都通过。提分规则很简单,先每人都加2分,看是否都通过,如果没有全部通过,每人再加2分,再看是否都通过,如此反复提分,直到所有人都通过为止 。分析:第一步,统计没通过的人数 ;第二步,如果有人没通过,加分;第三步,循环判断。例子:DECLARE @n intWHILE(1=1) --条件永远成立  BEGIN    SELECT @n=COUNT(*) FROM stuMarks            WHERE writtenExam<60    --统计不及格人数    IF (@n>0)       UPDATE stuMarks     --每人加2分            SET writtenExam=writtenExam+2   ELSE       BREAK    --退出循环  ENDprint 加分后的成绩如下: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)-逻辑控制(芮)