学而实习之 不亦乐乎

SQL Server 流程控制语句(二): IF

2022-08-04 08:42:38

一、 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位于第三象限'