- 5
- 0
- 约7.32千字
- 约 70页
- 2021-12-11 发布于广东
- 举报
SQL Server支持结构化的编程方法,可以进行顺序结构、选择结构、循环结构的编程。本节结合例题介绍SQLServer2000的程序控制语句。 11.5 程序控制语句 第三十页,共70页 11.5.1 BEGIN…END语句 BEGIN … END语句相当于其他计算机语言中的大括号或复合语句,它将多条T-SQL语句封装成为一个整体的语句块,T-SQL中允许使用嵌套的BEGIN … END语句。通常把BEGIN … END语句放在语句IF … ELSE或者WHILE中,使其中的语句作为一个整体来执行。 第三十一页,共70页 [实例11.6]在学生成绩表期中成绩中检查全体学生某门课程(课程编号为1001)的期中成绩。如果某个学生的成绩低于60分,则显示文本:“1001科目的分数低于60分”,并显示所有未及格学生的学号、姓名与期中成绩分数。 第三十二页,共70页 命令格式: BEGIN T-SQL语句块 END 命令说明: BEGIN、END分别表示语句块的开始和结束。 T-SQL语句块可以是一条或一条以上的T-SQL语句。 第三十三页,共70页 11.5.2 IF…ELSE语句 若希望在满足某种条件的情况下执行一些语句,而在该条件不满足的情况下执行另外一些语句。在这种情况下,我们就需要使用条件语句来在执行T-SQL语句时强加条件,来控制语句执行的顺序。 第三十四页,共70页 [实例11.7]在学生信息表中统计学生的平均年龄,如果平均年龄小于20则输出年龄组合正常,否则输出大于平均年龄的学生的信息。 第三十五页,共70页 由上例我们可归纳出IF...ELSE语句的命令格式: IF 返回布尔表达式{T-SQL语句| BEGIN…END语句块} [ELSE{ T-SQL语句| BEGIN…END语句块}] 命令说明: 返回“真”(TRUE)或“伪”(FALSE)的布尔表达式。如果布尔表达式中含有SELECT语句,则必须用圆括号将SELECT语句括起来。 T-SQL语句| BEGIN…END语句块:只能是一条。 第三十六页,共70页 11.5.3 CASE语句 当有多个选择方案时,如果使用IF… ELSE语句进行选择判断,则由于需要层层嵌套而非常不便,此时可以在SELECT语句中采用CASE结构。CASE语句有两种格式:简单CASE函数与CASE搜索函数。前者将某个表达式与一组简单表达式进行比较以确定结果;后者则需计算一组布尔表达式以确定结果。下面用实例加以说明。 第三十七页,共70页 [实例11.8]在pubs数据库中根据作者来自的州的名字,打印出作者的姓名和州的全名 第三十八页,共70页 命令格式: CASE 输入表达式 WHEN 比较的表达式 THEN 结果表达式 […n] [ELSE 返回结果表达式] END 命令说明; CASE后面的输入表达式,用于进行比较。 WHEN后面给出用于进行比较的表达式的数据类型必须相同,或者能够隐性转换。 […n)表示可以有多个WHEN…THEN结构。 第三十九页,共70页 [实例11.9] 显示学生成绩中的期中成绩分数。 第四十页,共70页 由上例可见,CASE搜索函数的WHEN后表达式是布尔表达式,这是与简单CASE函数不同之处。 命令格式; CASE WHEN 逻辑表达式 THEN [ELSE 结果表达式 ] END 第四十一页,共70页 11.5.4 WHILE语句 WHILE语句是一种条件循环语句,在满足条件时执行循环体,不满足条件时跳出循环结构。WHILE语句可以嵌套执行,嵌套时首先运行内层循环,内层循环结束之后再运行外层循环。 第四十二页,共70页 [实例11.10]在pubs数据库中,将书价小于$30的书提高50%,如果提高后的书价超过$50,则输出书价太贵。 第四十三页,共70页 由此,我们可给出命令格式: WHILE 逻辑表达式 BEGIN 表达式 [BREAK] [CONTINUE] END 命令说明: 当逻辑表达式为真时,服务器将重复执行SQL语句组。BREAK的作用是在某些情况发生时,立即无条件地跳出循环,并开始执行紧接在END后面的语句。CONTINUE的作用是在某些情况发生时,跳出本次循环,开始执行下一次循环。 第四十四页,共70页 11.5.5 RETURN语句 RETURN语句用于从当前过程、批处理或语句块中无条件退出,并不再执行位于RETURN之后的语句。 命令格式: RETURN 整型表达式 命令说明: RETURN一般用于从存储过程给调用过程或应用程序返回
原创力文档

文档评论(0)