易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL 循环语句 while 介绍 实例 简介

 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


相关文档:

sql 交叉表

交叉表语句的实现:
  用于:交叉表的列数是确定的
  select name,sum(case subject when '数学' then source else 0 end) as '数学',
  sum(case subject when '英语' then source else 0 end) as '英语',
  sum(case subject when '语文' then source else 0 end) as '语文'
  from test
  group by name ......

在SQL中Select语句的执行顺序

在SQL中Select语句的执行顺序如下:
(1)from子句,组装来自不同数据源的数据
(2)WHERE子句,给予指定条件对记录进行筛选
(3)GROUP BY子句,将数据划分为多个组
(4)使用聚集函数进行计算
(5)使用HAVING子句筛选分组
(6)计算所有表达式
(7)使用ORDER BY对结果进行排序 ......

SQL联表更新,联表查询

没有引用关系的表
 1. 联表更新
update  a set a.education = '本科' from NT_UserInfo a ,NT_User b where  a.UserID=b.UserID and b.email = 'carlfan2008@163.com'
2. 联表查询
select a.*,b.* from nt_user as a, nt_userinfo as b where a.userid = b.userid and Email = 'carlfan2008@163.com ......

SQL Server 日期操作全接触

DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CON ......

关于sql中时间的格式转换


sql server2000中使用convert来取得datetime数据类型样式(全)
日期数据格式的处理,两个示例:
CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/
CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号