MSSQL基础教程之SQL流程控制命令

网络整理 - 08-18

  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<运算式>]