![SQL Server 2017从零开始学(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/73/27738073/b_27738073.jpg)
上QQ阅读APP看书,第一时间看更新
4.5.3 CASE语句
CASE是多条件分支语句,相比IF…ELSE语句,CASE
语句进行分支流程控制可以使代码更加清晰,易于理解。CASE语句也根据表达式逻辑值的真假来决定执行的代码流程,CASE语句有两种格式。
1.格式1
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P94_34523.jpg?sign=1738871244-pjPwiLcVVJhZ0wsRO20D0WbX8IkLUy3c-0-499524431c3de53e53e853346c4c25e7)
在第一种格式中,CASE语句在执行时,将CASE后的表达式的值与各WHEN子句的表达式值比较,如果相等,就执行THEN后面的表达式或语句,然后跳出CASE语句;否则,返回ELSE后面的表达式。
【例4.24】使用CASE语句根据学生姓名判断各个学生在班级的职位,输入语句如下。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P94_34524.jpg?sign=1738871244-XpR9vsxnwtos4lz6mE7gfAxjaaoeSHGW-0-62b77239fd28c1311ce95d06d959e3e2)
代码执行结果如图4-19所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P95_6006.jpg?sign=1738871244-yMoFZT9Q3w7oXyWweBnRhfbCSkKzw0HO-0-0623758bddb500fc34cf116ff085199e)
图4-19 使用CASE语句对学生职位进行判断
2.格式2
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P95_34525.jpg?sign=1738871244-Pr1h4PFnKstNYlUVaqhlVHHpfJ52ng2E-0-e7071fc0c3263407ce65c6c81a3e56d5)
在第二种格式中,CASE关键字后面没有表达式,多个WHEN子句中的表达式依次执行,如果表达式结果为真,就执行相应THEN关键字后面的表达式或语句,执行完毕之后跳出CASE语句。如果所有WHEN语句都为FALSE,则执行ELSE子句中的语句。
【例4.25】使用CASE语句对考试成绩进行评定,输入语句如下。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P95_34526.jpg?sign=1738871244-Mg8qFBBTS8jCIJtks9GFqh2DkQSGc8Hl-0-9c9fc5f927b3cb7c9b92f4a65612ee06)
代码执行结果如图4-20所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P96_6121.jpg?sign=1738871244-JCJgLV4vjyAIecgN2Kve2JzhfwBSPqe5-0-79399137c5e01dc222f4da78072517be)
图4-20 使用CASE语句对考试成绩进行评价