第三章T-SQL编程 (2).ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
讲解要点: CASE-END的语法比较难于理解,讲解此例请放慢速度讲解。 1.多分支部分整体是一条非常简单的语句: SELECT stuNo, 成绩=某个值 FROM stuMarks 2.成绩是别名,等价使用AS。 3.成绩后的值不确定,它的值由CASE-END多分支决定。 CASE语句根据每条记录中笔试成绩,进行判断,结果是A还是B等。 4.学员明白后,强调CASE-END的语法配对,如蓝色标识的部分。 由于CASE-END对于学员来说难于理解,特意再次补充示例讲解。 1.请学员在练习本上编写,抽取个别学员到讲台用白版笔书写。 2. 给予提示:求平均分: (writtenExam+labExam)/260 3.然后讲解答案,指出学员的错误。 讲解要点: 先打个比方:如果您家来了客人,您妈妈给您2元钱到商店买1瓶啤酒给客人喝。 结果客人不够喝,您妈怕浪费,又给您2元钱让您下楼再去买1瓶, 结果又不够喝,又让您下楼再买1瓶,还不够,再让您买一瓶…… 这时您可能会怎么说?引导回答:妈,拜托您,别让我每次1瓶1瓶的买, 1次多买几瓶不就行了吗? 我们执行SQL语句同样如此,告诉学员SQL Server是网络数据库, 一台服务器可能有很多远程客户端,如果在客户端一次发送1条SQL语句,然后客户返回结果; 然后再发送1条SQL语句,再返回,效率太低了。 引出批处理的概念。 强调: 1.批处理的标志GO 2.批处理的好处 3. SQLServer规定:如果是建库、建表语句、以及我们后面学习的存储过程和视图等, 则必须在语句末尾添加GO批处理标志。 select top 1 * from users order by newid() 总结: 方式多样,例如:可以指定某些睡觉的学员总结,随机抽号总结,集体总结,调动课堂氛围。 * 设置输出结果的格式 为了文本消息和输出结果显示在同一窗口,需要设置输出结果的格式 * 逻辑控制语句 WHILE循环语句 SQL中的WHILE语句 WHILE (条件) BEGIN 语句1 语句2 …… BREAK END BREAK表示退出循环 如果有多条语句,才需要BEGIN-END语句块 * WHILE示例 问题: 本次学员B考试成绩较差,假定要提分,确保学员B笔试能通过。提分规则很简单,先加2分,看是否通过,如果没有通过,再加2分,再看是否通过,如此反复提分,直到学员B通过为止 。 学员成绩表 分析: 第一步,查看学员B成绩是否通过; 第二步,如果没通过,加分; 第三步,循环判断。 * declare @aveTeam float ,@s float select @aveTeam=avg(scroeNumber) from scroe select @s=scroeNumber from scroe where scroeId=9 --这个3是可以更改的地方 while(1=1) begin if(@s=@aveTeam) begin update scroe set scroeNumber=scroeNumber+2 where scroeId=9 select @s=scroeNumber from scroe where scroeId=9 select @aveTeam=avg(scroeNumber) from scroe end else begin break end end Print 加分以后这个学员的成绩是: select * from scroe where scroeId=9 WHILE示例 参考语句 * 逻辑控制语句 CASE-END多分支语句 CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 …… ELSE 其他结果 END * CASE-END示例 问题: 采用美国的ABCDE五级打分制来显示笔试成绩。 A级: 90分以上 B级: 80-89分 C级: 70-79分 D级: 60-69分 E级: 60分以下 学员成绩表 * CASE-END示例 参考语句 print ABCDE五级显示成绩如下: select userName, 成绩=case when scroeNumber60 then E when scroeNumber between 60 and 70 then D when scroeNumber between 70 and 85 then C when scroeNumber between 85 and 99 then B else A end from s

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档