太行年华
一步步走过每一片绿色
IT博客
首页
新文章
新随笔
聚合
管理
posts - 26, comments - 29, trackbacks - 0
T-SQL学习笔记-程序设计基础-流程控制语句
越学越有意思,不是很难!
流程控制语句
流程控制语句是指那些用来控制程序执行和流程分支的命令,在SQL Server 2000中,育种控制语句主要用来控制SQL语句、语句块或者存储过程执行流程。
(
1
).
begin
end语句
begin
end语句能够将多个Transact
-
SQL语句组合成一个语句块,并将它们视为一个单元处理。在条件语句和循环等控制流程语句中,当符合特定条件便要执行两个或者多个语句时,就需要使用begin
end语句,其语法形式为:
begin
{sql_statement
|
statement_block}
end
例:
use
taihang
go
declare
@message
varchar
(
200
)
if
exists
(
select
*
from
员工数据表
where
所属部门
=
'
办工室
'
)
begin
set
@message
=
'
下列人员在办公室工作
'
print
@message
select
员工姓名
from
员工数据表
where
所属部门
=
'
办公室
'
end
else
begin
set
@message
=
'
没有人在办公室
'
print
@message
end
go
(
2
).
if
else语句
if
else语句是条件判断语句,其中,else子句是可先的,最简单的if语句没有else子句部分。
if
else语句用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。SQL Server允许嵌套使用if
else语句,而且嵌套层数没有限制。
语法:
if
boolean_expression
{sql_statement
|
statement_block}
[
else
{sql_statement|statement_block}
]
(
3
).
if
exists
1
>
.if后面的布尔表达式可含有select语句,如果select语句一个值,它可用来与另一值进行比较,以得到布尔表达式。
2
>
.如果select语句返回不止一个值,可使用if
exists
.语法如下:
if
exists
(
select
statement)
{sql_statement
|
statement_block}
[
else [bolean_expression
]
{sql_statement
|
statement_block}]
例:查询标识号为1389的出版商出版的任何书的信息
if
exists
(
select
*
from
titles
where
pub_id
=
'
1389
'
)
begin
print
'
包含如下图书
'
select
*
from
titles
where
pub_id
=
'
1389
'
end
else
print
'
无
'
注意:一定不要把if
exists和聚合函数一起使用,因为聚合函数总是返回数据,即使数据是0
(
4
).while语句
while语句用于设置重复执行SQL语句或语句块的条件。只要指定的条件为真,就重复执行语句。其中,continue语句可以使程序跳过continue语句后面的语句,回到while循环的第一行命令。break语句则使程序完全跳出循环,结束while语句的执行。
1
>
break语句交在某些情况发生时,立即无条件地退出最内层while循环,语法为:
while逻辑表达式
begin
break
end
2
>
continue语句在某些情况发生时,控制程序跳出本次循环,重新天始下一次while循环。语法为:
while逻辑表达式
begin
continue
end
注意:如果select语句用作while语句的条件,那么,select语句必须包含在英文括号中。
例:
declare
@x
int
,
@y
int
,
@c
int
select
@x
=
1
,
@y
=
1
while
@x
<
3
begin
print
@x
while
@y
<
3
begin
select
@c
=
100
*
@x
+
@y
print
@c
select
@y
=
@y
+
1
end
select
@x
=
@x
+
1
select
@y
=
1
end
(
5
).case表达式
case表达式可以计算多个条件,并将其中一个符合条件的结果表达式返回。case表达式的语法为:
case
字段名或变量名
when
逻辑表达式1
then
结果表达式1
when
逻辑表达式2
then
结果表达式2
when
逻辑表达式3
then
结果表达式3
else
结果表达式
end
例:调整员工工资,工作级别为1的上调8
%
,工作级别为2的上调7
%
,工作级别为3的上调6
%
,其它上调5
%
use
taihang
go
update
employee
set
wage
=
case
when
job_level
=
'
1
'
then
wage
*
1.08
when
job_level
=
'
2
'
then
wage
*
1.07
when
job_level
=
'
3
'
then
wage
*
1.06
else
then
wage
*
1.05
(
6
).return语句
return语句用于无条件地终止一个查询、存储过程或者批处理,此时位于return之后的程序将不会被执行。return语句的语法形式为:
return
整数表达式
通常,存储过程使用返回代码表示存储过程执行的成功或失败。无错误,则返回0,否则,返回非零值。
(
7
).waitfor语句
waitfor语句用于暂时停止执行SQL语句、语句块或者存储过程等,直到所设定的时间已过或者所设定的时间已到才继续执行。
语法:
waitfor
delay 时间间隔
其中:时间间隔指定执行waitfor语句之前需要等待事件,最多为24小时。
也可写成:
waitfor
time 时间值
其中,时间值指定waitfor语句将要执行的时间
posted on 2006-06-21 17:14
太行
阅读(2230)
评论(1)
编辑
收藏
引用
所属分类:
技术热点
FeedBack:
#
re: T-SQL学习笔记-其它语言元素-流程控制语句
2006-06-21 18:58 |
一剑飘红
加油啊:)
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
欢迎来访太行的BLOG! 欢迎留言!
<
2006年7月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
(26)
学习遐想(2)
心情随笔(4)
技术热点(20)
随笔档案
(26)
2007年1月 (1)
2006年9月 (1)
2006年7月 (1)
2006年6月 (19)
2006年4月 (4)
文章分类
(4)
技术文章(4)
文章档案
(4)
2006年9月 (1)
2006年7月 (1)
2006年6月 (2)
相册
帅影
友情链接
rover的博客
一剑的天空
修改狂人的blog
最新随笔
1. 求助:装上卡巴斯基6.0为什么不能看到收取邮件的内容?
2. 成功加辟溪径
3. 铁通的话务员,我服了!
4. T-SQL学习笔记-程序设计基础-游标
5. T-SQL学习笔记-程序设计基础-流程控制语句
6. T-SQL学习笔记-程序设计基础-自定义函数
7. T-SQL学习笔记-程序设计基础-函数
8. T-SQL学习笔记-程序设计基础-运算符
9. T-SQL学习笔记-程序设计基础-注释、变量
10. T-SQL学习笔记-程序设计基础-批处理
11. T-SQL学习笔记-SQL server自定义数据类型
12. T-SQL学习笔记-SQL server数据类型
13. SQL学习笔记-数据的插入、更新和删除
14. SQL学习笔记-如何提高select语句的效率
15. SQL学习笔记-嵌套查询
搜索
积分与排名
积分 - 34172
排名 - 154
最新评论
1. re: 一道比较经典的智力题
我也觉得是9月一日
--wwwwww
2. re: 一道比较经典的智力题
楼主简直在乱说,只有可能是 3月4日,3月8日,9月1日里的一个
--wwwwww
3. re: T-SQL学习笔记-程序设计基础-游标
评论内容较长,点击标题查看
--xland
4. re: 一道比较经典的智力题
评论内容较长,点击标题查看
--黎尘
5. re: 成功加辟溪径[未登录]
真的对你有那个一点钦佩了!!!!
--陈
阅读排行榜
1. SQL学习笔记-嵌套查询(6624)
2. T-SQL学习笔记-程序设计基础-自定义函数 (2551)
3. T-SQL学习笔记-程序设计基础-流程控制语句(2230)
4. SQL学习笔记-union子句用法(1992)
5. SQL学习笔记 where子句用法,like关键字(1872)
评论排行榜
1. 一道比较经典的智力题(9)
2. ASP中十一种连接数据库的方法(4)
3. SQL学习笔记-union子句用法(3)
4. T-SQL学习笔记-程序设计基础-游标(3)
5. 铁通的话务员,我服了!(2)