Transact-SQL 语言使用的流程控制命令与常见的程序设计语言类似主要有以下几种控制命令。
4.6.1 IF…ELSE 其语法如下: IF <条件表达式> <命令行或程序块> [ELSE [条件表达式] <命令行或程序块>] 其中<条件表达式>可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IF…ELSE用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。如果不使用程序块,IF或ELSE只能执行一条命令。IF…ELSE可以进行嵌套。
例4-9 declare@x int,@y int,@z int select @x=1,@y=2, @z=3 if@x>@y print''x>y'' --打印字符串''x>y'' else if@y>@z print''y>z'' else print''z>y'' 运行结果如下 z>y 注意:在Transact-SQL中最多可嵌套32级。
4.6.2 BEGIN…END 其语法如下: BEGIN <命令行或程序块> END BEGIN…END用来设定一个程序块,将在BEGIN…END内的所有程序视为一个单元执行BEGIN…END经常在条件语句,如IF…ELSE中使用。在BEGIN…END中可嵌套另外的BEGIN…END来定义另一程序块。
4.6.3 CASE CASE 命令有两种语句格式: CASE <运算式> WHEN <运算式>THEN<运算式> … WHEN<运算式>THEN<运算式> [ELSE<运算式>] END
CASE WHEN <条件表达式> THEN <运算式> WHEN <条件表达式> THEN <运算式> [ELSE <运算式>] END CASE命令可以嵌套到SQL命令中。 例4-10:调整员工工资,工作级别为“1”的上调8%,工作级别为“2”的上调7%,工作级别为“3”的上调6%,其它上调5%。 use pangu update employee set e_wage = case when job_level = ’1’ then e_wage*1.08 when job_level = ’2’ then e_wage*1.07 when job_level = ’3’ then e_wage*1.06 else e_wage*1.05 end 注意:执行CASE子句时,只运行第一个匹配的子名。
[1] [2] [3] 下一页
关注此文的读者还看过:
- 2010-4-1 18:12:45 预防非法表D99_Tmp,kill_kk的建立
- 2008-4-23 15:53:39 SQL Server数据库超级管理员账号防护知识
- 2008-4-11 21:37:35 SQL Server 2005数据库镜像配置脚本示例
- 2008-4-4 9:12:54 讲解如何实现互联网上数据库的安全
- 2008-4-1 11:07:24 SQL 2005数据库转到SQL 2000的步骤讲解
- 2008-3-31 12:39:45 SQL Server自动生成日期加数字的序列号
- 2008-3-31 12:39:07 SQL Server 2000的数据库容量究竟是多大
- 2008-3-18 18:01:49 SQL Server 2005数据库的同义词Bug 讲解
|