- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]存储过程T-SQL游标
数据库原理 3.9 流程控制语句 T-SQL 语言支持基本的流控制逻辑,它允许按照给定的某种条件执行程序流和分支,T-SQL 提供的控制流有:IF…ELSE分支,CASE多重分支,WHILE循环结构,GOTO语句,WAITFOR语句和RETURN语句。 (二) IF...ELSE语句 语法格式: IF 条件表达式 SQL语句组1 ELSE SQL语句组2 注意:使用select语句作为这个条件表达式时,必须用圆括号将select语句括起来。 3.9.1 IF…ELSE语句 例9:--如果图书中有水文类的书,输出该类书的名称和出版社,否则显示“抱歉,图书馆内没有该类藏书!!” IF exists(SELECT * FROM 图书 WHERE 书名 like ‘%水文%’) SELECT 书名,作者 FROM 图书 WHERE 书名 like ‘%水文%’ ELSE PRINT ‘抱歉,图书馆内没有该类藏书!!’ 执行结果: 3.9.1 IF…ELSE语句 例10:嵌套IF图书查询 IF exists(SELECT * FROM 图书 WHERE 书名 = 天龙八部) SELECT 书名,作者 FROM 图书 WHERE 书名= 天龙八部 ELSE IF (SELECT Max(出版年度) FROM 图书 WHERE 书名 like %水文%)2005 SELECT 书名,作者 FROM 图书 WHERE 书名 like %水文% ELSE PRINT 没有符合您意愿的图书!! 3.9.1 IF…ELSE语句 在实际程序中,IF…ELSE语句中不止包含一条语句,而是一组的SQL语句。为了可以一次执行一组SQL语句,这时就需要使用BEGIN…END语句将多条语句封闭起来。其语法格式为: BEGIN {sql_statement | statement_block } /* 语句块 */ END 说明:BEGIN...END语句块允许嵌套。 3.9.1 IF…ELSE语句 例5-11:BEGING END图书查询 DECLARE @book1 int,@book2 int IF exists(SELECT * FROM 图书 WHERE 作者=‘金庸) BEGIN SELECT @book1=COUNT(*) FROM图书 WHERE 作者=‘金庸 PRINT ‘金庸的书数量+RTRIM(CAST(@book1 AS char(4)))+册 /*CAST:转换数据类型,RTRIM:去右空格*/ END ELSE PRINT ‘没有金庸的书! 3.9.1 IF…ELSE语句 IF exists(SELECT * FROM 图书 WHERE 书名 like ‘%水文%’) BEGIN SELECT @book2=COUNT(*) FROM 图书 WHERE 书名 like ‘%水文%’ PRINT ‘与水文相关的书有’ +RTRIM(CAST(@book2 AS char(4)))+册 END ELSE PRINT ‘没有与水文相关的图书!!’ 执行结果: 3.9.2 WHILE语句 设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。 语法: WHILE 逻辑表达式 Begin T-SQL语句组 [break]/*终止整个语句的执行*/ [continue]/*结束一次循环体的执行*/ END 备注:如果嵌套了两个或多个 WHILE 循环,则内层的 BREAK 将退出到下一个外层循环。将首先运行内层循环结束之后的所有语句,然后重新开始下一个外层循环。 3.9.2 WHILE语句 例5-12:一个小循环程 DECLARE @X int SET @X=0 WHILE @x3 BEGIN SET @x=@X+1 PRINT x=+convert(char(1),@x) --类型转换函数convert END GO 执行结果: x=1 x=2 x=3 【例】分析下列程序的功能。 DECLARE @sum int, @n int,@i int SELECT @n=0,@i=10; WHILE (@i=10
原创力文档


文档评论(0)