SQL 流程控制语句 之一 IF…ELSE语句
有表 publishers 如下图:
执行IF…ELSE语句:
declare @a int,@b varchar(100)
set @a=(select count(titles_id) from titles);
set @b=convert(varchar(100),@a);
if @a<20
select @a+1 as a
else
begin
select @b+'2' as b
select 900
end
得出结果如下:
你们说这个结果 执行上if 还是 else ? 另外告诉大家 begin...end之间的东西被看做一个整体语句块相当一个语句.我如果再执行一个程序如下:
declare @a int,@b varchar(100)
set @a=(select count(titles_id) from titles);
set @b=convert(varchar(100),@a);
if @a<14
select @a+1 as a
else
begin
select @b+'2' as b
select 900
end
得出结果如下图:
大家明白了吧! 既然明白了,就要讲 if...else 的理论知识了! 等一下我梳个头 带个眼镜 再拿一本大部头 睡死你!
一、流程控制语句
流程控制语句是指那些用来控制程序执行和流程分支的命令,在SQL Server 2000中,流程控制语句主要用来控制SQL语句、语句块或者存储过程的执行流程。
1.IF…ELSE语句
2.BEGIN…END语句
3. WHILE…CONTINUE…BREAK语句
4. WAITFOR语句
5. RETURN语句
二、 IF…ELSE语句
IF…ELSE语句是条件判断语句,其中,ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IF…ELSE语句用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。SQL Server允许嵌套使用IF…ELSE语句,而且嵌套层数没有限制。
三、IF…ELSE语句的语法形式
IF...ELSE
语法:
IF Boolean_expression { sql_statement | statement_block }
[ ELSE { sql_statement | statement_block }