您的位置:首页 > 数据库

SQL SERVER 流程控制语句

2016-05-20 23:19 579 查看
1、BEGIN……ELSE语句:通常包含在其他流程控制中;

示例:定义局部变量@number,如果@number的值小于5,则执行WHILE中的语句块;

DECLARE @number INT;
SELECT @number=0;
WHILE @number<5
BEGIN
PRINT 'number=' + CONVERT(VARCHAR(10), @number)
SET @number=@number+1
END
PRINT '循环过后number的值为' + CONVERT(VARCHAR(10), @number)




2、IF……ELSE语句:

示例:IF……ELSE流程控制语句的使用;

DECLARE @count INT;
SELECT @count=10;
IF @count>11
PRINT 'count的值比10大。'
ELSE
PRINT 'count的值不大于10。'




3、CASE语句:多条件分支语句,有两种格式:

格式一示例:根据id的值给‘排序’赋值;

USE test2  ---数据库名
SELECT id,gender,
CASE id
WHEN 1 THEN '第一'  --如果id=1,则排序=第一;
WHEN 2 THEN '第二'  --如果id=2,则排序=第二;
ELSE '无'            --其他的id,排序=无;
END AS '排序'
FROM person




格式二示例:

SELECT id,gender,
CASE
WHEN id < 2 THEN '第二'
WHEN id < 3 THEN '第一'
ELSE '无'
END AS '排序'
FROM person




4、WHILE语句示例:

DECLARE @count INT;
SELECT @count=10;
WHILE @count > 0
BEGIN
IF @count > 5
BEGIN
PRINT 'count等于'+CONVERT(VARCHAR(10),@count)+',大于5继续执行;';
SELECT @count=@count-1;
CONTINUE;
END
ELSE
BEGIN
PRINT 'count等于'+CONVERT(VARCHAR(10),@count)+',不大于5,循环结束;';
BREAK;
END
END

PRINT 'WHILE循环结束后,count的值为'+CONVERT(VARCHAR(10),@count);




5、GOTO语句:表示将执行留跳转到标签处;

示例:

USE test2
BEGIN
SELECT id FROM person;
GOTO jump
SELECT gender FROM person; --第二条SELECT语句没有执行;
jump:
END


6、WAITFOR语句:用来暂时停止程序的执行,直到所设定的等待时间已过或快到时才继续往下执行,延迟的时间格式为“HH:MM:SS”,在WAITFOR语句中不能指定日期,并且时间长度不能超过24小时;

–示例:10秒的延迟后执行SET语句(即10秒钟后才输出语句“520”);

DECLARE @num VARCHAR(10);
SET @num='520';
BEGIN
WAITFOR DELAY '00:00:10';
PRINT @num;
END;


7、RETURN语句:可在任何时候用于从过程、批处理或语句块中退出,RETURN之后的语句是不执行的;存储过程可向执行调用的过程或应用程序返回一个整数值,如“RUTURN 2”。除非另有说明,否则所有系统存储过程返回的值均为0,0表示成功,非0表示失败;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息