SQL Server 流程控制语句(二): IF
一、 IF
1.语法
if <条件表达式>
{命令行|程序块}
<条件表达式>:可以是各种表达式的组合,值必须是逻辑值“真”或“假”。
命令行|程序块:可以是合法的 T-SQL 语句。
注意:
(1)命令行|程序块 如果有两条或者两条以上,需要使用 BEGIN ... END 。
(2)注意 <条件表达式> 中的等号(=),这里并不是赋值。注意与 C 语言中的 if 语句进行区分(C 语言中的判断是否相等用 "==")。
2.实例
declare @x int
set @x=3
if @x>3
print '@x是正数'
print'end'
输出结果
end
注意:IF 语句只限制后面一条语句,并不能同时限制两条及两条以上的语句,如果要限制多条语句,则需要使用BEGIN ... END 。如下:
declare @x int
set @x=3
if @x>3 BEGIN
print '@x是正数'
print'end'
END
此时不会输出字符串。
二、IF ... ELSE
1.语法
if <条件表达式>
{命令行1|程序块1}
[ELSE
{命令行2|程序块2}]
实际上用法与 C 语言中的 if 语句类似。如果 <条件表达式> 中的值为真,则执行{命令行1|程序块1},否则执行 {命令行2|程序块2}。
IF ... ELSE 中还可以嵌套 IF ... ELSE语句。
2.实例
(1)判断数的大小
declare @x int,@y int
set @x=8
set @y=3
if @x>@y
print '@x大于@y'
else
print'@x小于等于@y'
(2)判断坐标的象限
declare @x int,@y int
set @x=8
set @y=-3
if @x>0
if @y>0
print'@x@y位于第一象限'
else
print'@x@y位于第四象限'
else
if @y>0
print'@x@y位于第二象限'
else
print'@x@y位于第三象限'