SQL循环语句

declare @i int

set @i=1

while @i<30

begin

insert into test (userid) values(@i)

set @i=@i+1

end

---------------

while 条件

begin

执行操作

set @i=@i+1

end

WHILE

设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。

+语法

WHILE Boolean_expression

{ sql_statement | statement_block }

[ BREAK ]

{ sql_statement | statement_block }

[ CONTINUE ]

参数

Boolean_expression

返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。

{sql_statement | statement_block}

Transact-SQL 语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字 BEGIN 和 END。

BREAK

导致从最内层的 WHILE 循环中退出。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。

CONTINUE

使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后的任何语句。

注释

如果嵌套了两个或多个 WHILE 循环,内层的 BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。

+示例

·······································

A. 在嵌套的 IF...ELSE 和 WHILE 中使用 BREAK 和 CONTINUE

在下例中,如果平均价格少于 $30,WHILE 循环就将价格加倍,然后选择最高价。如果最高价少于或等于 $50,WHILE 循环重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过 $50,然后退出 WHILE 循环并打印一条消息。

USE pubs

GO

WHILE (SELECT AVG(price) FROM titles) < $30

BEGIN

UPDATE titles

SET price = price * 2

SELECT MAX(price) FROM titles

IF (SELECT MAX(price) FROM titles) > $50

BREAK

ELSE

CONTINUE

END

PRINT 'Too much for the market to bear'

·······································

B. 在带有游标的过程中使用 WHILE

以下的 WHILE 结构是名为 count_all_rows 过程中的一部分。下例中,该 WHILE 结构测试用于游标的函数 @@FETCH_STATUS 的返回值。因为 @@FETCH_STATUS 可能返回 –2、-1 或 0,所以,所有的情况都应进行测试。如果某一行在开始执行此存储过程以后从游标结果中删除,将跳过该行。成功提取 (0) 后将执行 BEGIN...END 循环内部的 SELECT 语句。

USE pubs

DECLARE tnames_cursor CURSOR

FOR

SELECT TABLE_NAME

FROM INFORMATION_SCHEMA.TABLES

OPEN tnames_cursor

DECLARE @tablename sysname

--SET @tablename = 'authors'

FETCH NEXT FROM tnames_cursor INTO @tablename

WHILE (@@FETCH_STATUS <> -1)

BEGIN

IF (@@FETCH_STATUS <> -2)

BEGIN

SELECT @tablename = RTRIM(@tablename)

EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM '

+ @tablename )

PRINT ' '

END

FETCH NEXT FROM tnames_cursor INTO @tablename

END

CLOSE tnames_cursor

DEALLOCATE tnames_cursor

·······································

C.延伸:

--定义变量:

declare @A1 INT,@A2 INT,@A3 INT

--定义游标

DECLARE my_Cur CURSOR FOR

SELECT A1,A2,A3 FROM A

--打开游标

OPEN  my_Cur

--游标滚到下一行

FETCH NEXT FROM  my_Cur INTO @A1,@A2,@A3

--循环直到游标逐行读取完数据

WHILE @@FETCH_STATUS = 0

BEGIN

/*

--这里做你想做的事情

--请问

print  @A1+@A2+@A3

--怎么实现,谢谢

*/

--游标滚到下一行

FETCH NEXT FROM  my_Cur INTO @A1,@A2,@A3

END

--关闭游标

CLOSE my_Cur

--释放资源

DEALLOCATE my_Cur

SQL DELETE 语句详解

SQL DELETE 语句详解   DELETE 语句 DELETE 语句用于删除表中的行. 语法 DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName Fir ...

SQL Update 语句详解

SQL Update 语句详解   Update 语句 Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 Person: L ...

SQL SERVER数据库状态&lpar;脱机&comma;联机&comma;可疑&rpar;及SQL设置语句详解

首先我们应该知道数据库总是处于一个特定的状态中,下面先来了解一下数据库的常见的三种状态:1,脱机:我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库 ...

sql select语句详解

先group by 后  order by SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]    * | expression [ AS ...

mysql中SQL执行过程详解与用于预处理语句的SQL语法

mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...

【转】MySQL用户管理及SQL语句详解

[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...

Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法

sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法.怎么来解决和防范sql注入, ...

Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

mysql基础篇 - SELECT 语句详解

基础篇 - SELECT 语句详解         SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...

随机推荐

ios framework 简单制作

在制作过程中遇到的一些问题跟大家分享下,直接上步骤 制作库有分模拟器框架和真机矿机  如果报错x86_64什么的字眼就是库里面没有包含模拟器框架 模拟器:iPhone4s~5 : i386 iPhon ...

数据库分库分表&lpar;sharding&rpar;

地址: http://blog.csdn.net/column/details/sharding.html

C&plus;&plus;模拟Java&OpenCurlyDoubleQuote;内部”类

代码思路来自Thinking in C++ 10.13.1内部类方法.类似多重继承,但是类型转换是单向的:Outer支持“向上”转型,但是不能“向下”转型回Outer. #include

P1023 奶牛的锻炼

P1023 奶牛的锻炼 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 USACO 描述 奶牛Bessie有N分钟时间跑步,每分钟她可以跑步或者休息.若她在第 ...

Ajax之HTTp请求

71.Ajax的基础概念  *运用html和css来实现页面表达信息  *运用XMLHttpRequest和web服务器进行数据的异步交换  *运用JavaScript操作DOM来实现动态局部刷新 2 ...

UVA 10790 How Many Points of Intersection&quest;

How Many Points of Intersection?  We have two rows. There are a dots on the top row and b dots on ...

golang类型断言

一.介绍 类型断言,由于接口是一般类型,不知道具体类型,如果要转成具体类型,就需要使用类型断言 例子: package main import "fmt" func main(){ ...

【转】Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

&lbrack;蓝桥杯&rsqb;ALGO-92&period;算法训练&lowbar;前缀表达式

问题描述 编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值.输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法).“-”(减法).“*”(乘法)或“/”(除法),运算对象为 ...

&lbrack;转&rsqb;pear windows 安装

FROM : http://jingyan.baidu.com/article/ca41422fd8cf3d1eae99ed3e.html 因为想使用phpdocument生成文档,不得不安装pear ...

mysql 多重循环_SQL循环语句 详解相关推荐

  1. mysql切换用户sql语句,MySQL用户管理及SQL语句详解

    [(none)]>select user,host frommysql.user; #查询用户和主机+---------------+-----------+ | user | host | + ...

  2. Mysql分组查询group by语句详解

    (1) group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组 (2) group by可用于单个字段分组,也可用于多个字段分组 select * from employee ...

  3. mysql的load data_【MySQL】load data语句详解(一)

    作者  罗小波 沃趣科技高级MySQL数据库工程师 load data语句详解 背景 数据库版本:MySQL 5.7.18 服务器信息:本地到处导入在10.10.30.241上演示,local远程导入 ...

  4. mysql完全备份 二进制日志,MySQL二进制日志备份和恢复详解

    原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...

  5. smarty手册-smarty中foreach循环语句详解

    原文地址:smarty手册-smarty中foreach循环语句详解作者:谭博 {foreach}循环也有自身属性的变量,可以通过{$smarty.foreach.name.property}访问,其 ...

  6. python中循环语句只有for和while两种_Python循环语句之while,for语句详解

    下面为大家分享一篇Python 循环语句之 while,for语句详解,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 Python中有两种循环,分别为:for循环和while循环. for循 ...

  7. c语言输入循环语句,C语言中输入输出和循环语句详解.ppt

    C语言中输入输出和循环语句详解 C语言的输入输和循环分支语句详解 本章主要向大家介绍下C语言的输入和输出功能以及循环分支语句的使用 第4章 顺序结构程序设计 3.1 C语言语句 3.2 赋值语句 3. ...

  8. mysql iif函数_sql中的iif语句详解_mysql

    IIf 返回由逻辑测试确定的两个数值或字符串值之一. 语法 数字 IIf(«Logical Expression», «Numeric Expression1», «Numeric Expressio ...

  9. mysql explain语句_Mysql explain 语句详解

    explain 语句详解 explain 写在 select 前,如下 mysql> explain select * from user_info where id = 2\G ******* ...

  10. MySQL数据库增删改查常用语句详解

    MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...

最新文章

  1. qu.la网站上的小说爬取
  2. 设计师不应该错过的响应式设计框架(含优缺点分析)
  3. 在BackTrack下基于MS08-067漏洞的渗透
  4. 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting
  5. 三角形 画_CAD入门基础第3节:直角三角形的圆及如何修剪
  6. root 进入ssh 出现问题
  7. C#编程(四十)----------运算符重载
  8. Spring教程笔记8 基于SHH的员工信息管理系统
  9. 写论文visio的使用
  10. Stored Outline
  11. A银行B分行零售营销人员激励机制研究
  12. CAN总线隔离器简介
  13. 站在巨人的肩膀上还是站在巨人的脚底下
  14. JavaScript:实现ROT13密码算法(附完整源码)
  15. 海水淡化三十年打磨一把反渗透膜“利剑”
  16. 校园文化建设计算机教室标语,【校园文化宣传墙】_校园文化建设墙上布置必备标语宣传画大全...
  17. 感性负载对电源的影响有多大?
  18. 风影ASP.NET基础教学 13 NET3.0特性补充
  19. jq将数据库数据显示在select标签上
  20. HTML消息提醒(Notification)

热门文章

  1. 浙江工业大学计算机类专业是几年,浙江工业大学计算机类专业培养计划
  2. SolidWorks修改工程图中文字字体的方法
  3. zebradesginer zpl代码,如何从ZebraDesigner标签获取ZPL代码?
  4. 222、pom.xml、.iml文件的作用与意义 2019.11.08
  5. 【PyQt5】串口数据实时绘图
  6. 极光尔沃3D打印《英雄联盟》精美手板
  7. CodeBlock代码替换
  8. 基于阿里云的系统灾备方法架构与安全应急预案介绍
  9. 基于docker搭建单机版ELK日志采集系统
  10. java 定时任务 单元测试_介绍java 定时任务最简单的3种实现方法