- SQL Server 2017从零开始学(视频教学版)
- 李小威
- 386字
- 2021-03-26 09:44:57
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=1739188709-xkoyO2pfwNNXsYGlyEmMvQipdGOEIRBy-0-5f77454577ecae98eb2c8e22e1f52307)
在第一种格式中,CASE语句在执行时,将CASE后的表达式的值与各WHEN子句的表达式值比较,如果相等,就执行THEN后面的表达式或语句,然后跳出CASE语句;否则,返回ELSE后面的表达式。
【例4.24】使用CASE语句根据学生姓名判断各个学生在班级的职位,输入语句如下。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P94_34524.jpg?sign=1739188709-R7BhRnY4AjEFsWEzrDf87q9JuleD8zPG-0-399b83615d80f20357b64c198191e23c)
代码执行结果如图4-19所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P95_6006.jpg?sign=1739188709-zrm6MHKDIPOVWR1nPPGNS6eAeZtF0zrU-0-a6c23880739c56416b6011e35b8c0483)
图4-19 使用CASE语句对学生职位进行判断
2.格式2
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P95_34525.jpg?sign=1739188709-p1n78d9cOweSADGcwuLH7L9CL5zzVt1B-0-3d602765037144c2830132d5af2b9377)
在第二种格式中,CASE关键字后面没有表达式,多个WHEN子句中的表达式依次执行,如果表达式结果为真,就执行相应THEN关键字后面的表达式或语句,执行完毕之后跳出CASE语句。如果所有WHEN语句都为FALSE,则执行ELSE子句中的语句。
【例4.25】使用CASE语句对考试成绩进行评定,输入语句如下。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P95_34526.jpg?sign=1739188709-cujKX1hjSxLn69qCE5b5SMDC8e10xV8L-0-d57387d6671cf6b1ca995afbd00faaf6)
代码执行结果如图4-20所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P96_6121.jpg?sign=1739188709-BAR86rp2I45MWIcyEENy4ELgIg7fbnWN-0-fd3f2d98b1ee04a776db76ff390e395a)
图4-20 使用CASE语句对考试成绩进行评价