SQL Server中流程控制语句的全面指南
发布时间:2024-07-10 02:46:11 所属栏目:MsSql教程 来源:DaWei
导读: 今天这篇我们来学习和了解“SQL SERVER流程控制语句有哪些,怎么使用”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“SQL SERVER流程控制语句有哪些,怎么使用&
今天这篇我们来学习和了解“SQL SERVER流程控制语句有哪些,怎么使用”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“SQL SERVER流程控制语句有哪些,怎么使用”有一定的帮助。有这方面学习需要的朋友就继续往下看吧! 一个批处理段是由一个或者多个语句组成的一个批处理,之所以叫批处理是因为所有语句一次性被提交到一个SQL实例。 批处理是分批提交到SQL Server示例,因此在不同的批处理里局部变量不可访问。 在不同批处理中,流程控制语句不能跨批处理。 如果想让多个语句分多次提交到SQL实例,则需要使用GO关键字。GO关键字本身并不是一个SQL语句,GO关键字可以看作是一个批处理结束的标识符,当遇到GO关键字时,当前GO之前的语句会作为一个批处理直接传到SQL实例执行。 DECLARE @i int; SET @i = 1; GO --分批了 PRINT @i --@i在这个批里未定义 1、BEGIN...AND语句 语句块是多条Transact-SQL语句组成的代码段,从而可以执行一组Transact-SQL语句。经常与while或if...else组合起来使用,可以相互嵌套。 示例: DECLARE @count INT SELECT @count = 0 WHILE @count < 10 BEGIN PRINT 'count = ' + CONVERT(VARCHAR(10), @count) SELECT @count = @count + 1 END PRINT 'loop finished, count = ' + CONVERT(VARCHAR(10), @count) 2、IF...ELSE语句 IF...ELSE语句用于在执行一组代码之前进行条件判断,根据判断的结果执行不同的代码。IF...ELSE语句语句对布尔表达式进行判断,如果布尔表达式返回为TRUE,则执行IF关键字后面的语句块;如果布尔表达式返回FALSE,则执行 ELSE关键字后面的语句块。 语法: IF Boolean_expression { sql_statement | statement_block } [ ELSE { sql_statement | statement_block } ] 示例: DECLARE @score INT SET @score = 100 IF @score >= 60 PRINT '及格' ELSE PRINT '不及格' 3、 CASE语句 CASE语句是多条件分支语句,相比IF...ELSE语句,CASE语句进行分支流程控制可以使代码更加清晰,易于理解。CASE语句根据表达式逻辑值的真假来决定执行的代码流程。 语法: CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END 或 CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END 示例: DECLARE @score INT SET @score = 100 SELECT CASE @score WHEN 100 THEN '满分' WHEN 60 THEN '及格' END AS '成绩' 或者 图文无关,原创配图 DECLARE @score INTSET @score = 100 SELECT CASE WHEN @score >= 90 THEN '优秀' WHEN @score >= 80 THEN '良好' WHEN @score >= 70 THEN '中等' WHEN @score >= 60 THEN '及格' ELSE '不及格' END AS '成绩' 4、 WHILE语句 WHILE语句根据条件重复执行一条或多条T-SQL代码,只要条件表达式为真,就循环执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。 语法: WHILE Boolean_expression { sql_statement | statement_block | BREAK | CONTINUE } 参数: Boolean_expression:返回 TRUE 或 FALSE 的表达式。 如果布尔表达式中含有 SELECT 语句,则必须用括号将 SELECT 语句括起来。 {sql_statement | statement_block}:Transact-SQL 语句或用语句块定义的语句分组。 若要定义语句块,请使用控制流关键字 BEGIN 和 END。 BREAK:导致从最内层的 WHILE 循环中退出。 将执行出现在 END 关键字(循环结束的标记)后面的任何语句。 CONTINUE:使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后面的任何语句。 DECLARE @i int; SET @i = 0; WHILE(@i < 10) BEGIN SET @i = @i + 1; IF(@i % 2 = 0) BEGIN PRINT('跳过2的倍数' + CAST(@i AS varchar)); CONTINUE; END ELSE IF (@i = 7) BEGIN PRINT('到' + CAST(@i AS varchar) + '就跳出循环'); BREAK; END PRINT @i; END 5、无条件退出语句RETURN RETURN语句用于使程序从一个查询、存储过程或批量处理中无条件返回,其后面的语句不再执行。如果在存储过程中使用return语句,那么此语句可以指定返回给调用应用程序、批处理或过程的负整数;如果没有为return指定整数值,那么该存储过程将返回0。 BEGIN PRINT(1); PRINT(2); RETURN; PRINT(3); --在RETURN之后的代码不会被执行,因为会跳过当前批处理 END GO BEGIN PRINT(4); END “SQL SERVER流程控制语句有哪些,怎么使用”的内容就介绍到这里了,感谢大家的阅读。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐