聊聊 SQL 中的流程控制,你明白了吗?
发布时间:2022-08-02 11:17:27 所属栏目:云计算 来源:互联网
导读:流程控制的定义 一般是指用来控制程序执行和流程分至点额命令,一般指的是逻辑计算部分的控制。 流程控制种类 常见的流程控制有以下8种: BEGIN ... END WAITFOR GOTO WHILE IF ... ELSE BREAK RETURN CONTINUE 下面给大家具体介绍每种流程控制的用法。 BEGI
流程控制的定义 一般是指用来控制程序执行和流程分至点额命令,一般指的是逻辑计算部分的控制。 流程控制种类 常见的流程控制有以下8种: BEGIN ... END WAITFOR GOTO WHILE IF ... ELSE BREAK RETURN CONTINUE 下面给大家具体介绍每种流程控制的用法。 BEGIN...END BEGIN ... END语句用于将多个T-SQL语句合为一个逻辑块。当流程控制语句必须执行一个包含两条或两条以上的T-SQL语句的语句块时,使用BEGIN ... END语句。 语法 BEGIN sql_statement... END 示例 我们在数据库中打印出我们公众号的名称"SQL数据库开发" 复制 DECLARE @A VARCHAR(20) SET @A='SQL数据库开发' BEGIN SELECT @A END 1. 2. 3. 4. 5. 结果如下: 图片 这里的SELECT @A就是一条被执行的命令语句。 IF [...ELSE] IF [...ELSE]表示可以只使用IF,也可以IF和ELSE一起使用,表示条件判断。当满足某个条件使,就执行IF 下面的语句,否则执行ELSE下面的语句 IF语法 IF <条件表达式> {命令行 | 程序块} IF示例 如果某字符串的长度大于5,就打印该字符串 复制 DECLARE @A VARCHAR(20) SET @A='SQL数据库开发' IF LEN(@A)>5 SELECT @A 1. 2. 3. 4. 结果: 图片 这里结果与上面的BEGIN...END一样,但是如果我们将条件改成大于8,结果可能就不是这样的了,小伙伴们可以试一下。 IF...ELSE语法 IF <条件表达式> {命令行 | 程序块} ELSE {命令行 | 程序块} IF...ELSE示例 如果字符串的长度大于10,就打印该字符串,否则打印"字符串长度太短" 复制 DECLARE @A VARCHAR(20) SET @A='SQL数据库开发' IF LEN(@A)>10 SELECT @A ELSE SELECT '字符串长度太短' 1. 2. 3. 4. 5. 6. 结果: 图片 很明显字符串"SQL数据库开发"长度不大于10,所以返回ELSE里的结果了。 WHILE WHILE是循环控制,当满足WHILE后面的条件后,就可以循环执行WHILE下面的语句。通常与CONTINUE和BREAK一起使用,Break命令让程序完全跳出循环语句,结束WHILE命令,CONTINUE是让命令继续返回执行 语法 WHILE <条件表达式> {命令行 | 程序块} CONTINUE {命令行 | 程序块} BREAK {命令行 | 程序块} 示例 有1到10这样一组数字,从1按顺序开始,遇到偶数就跳过,遇到奇数就打印出来,当遇到9就结束打印。 复制 DECLARE @i int; SET @i = 0; WHILE(@i < 10) BEGIN SET @i = @i + 1; IF(@i % 2 = 0) BEGIN PRINT ('跳过偶数数' + CAST(@i AS varchar)); CONTINUE; END ELSE IF (@i = 9) BEGIN PRINT ('到' + CAST(@i AS varchar) + '就结束打印'); BREAK; END PRINT @i; END (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |