文章目录
- 一、begin..end语句
- 二、if ...else 语句
- 三、case语句
- 四、while语句
- 4.1 有限循环
- 4.2 无限循环
- 五、break语句
- 六、return 语句
- 七、goto语句
- 八、waitfor语句
一、begin…end语句
BEGIN … END 用来设定一个程序块,将在 BEGIN … END 内的所有程序视为一个单行。 BEGIN … END 经常在条件语句句 IF … ELSE 中使用。在 BEGIN… END 可嵌套另外BEGIN… END 来定义另一程序块,语法如下:
二、if …else 语句
这个很简单,直接举个例子说明。
比如段比较变量 的大小,并将结果打印出来:
declare @a int ,@b int,@c int
select @a=10,@b=12,@c=15
if @a>@b
print 'a大于b'
else if @b>@c
print 'b大于c'
else
print 'c大于b'
演示:
或者使用set语句,这样只能单个赋值:
declare @a int ,@b int,@c int
--select @a=10,@b=12,@c=15
set @a=10
set @b=12
set @c=15
if @a>@b
print 'a大于b'
else if @b>@c
print 'b大于c'
else
print 'c大于b'
演示:
三、case语句
学过c语言的应该很了解case语句了,所以我就不讲太多了,举个例子说明即可。
假设我们有数据表如下:
SQL遍历条件并在满足第一个条件时返回值:
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30 THEN "The quantity is greater than 30"
WHEN Quantity = 30 THEN "The quantity is 30"
ELSE "The quantity is under 30"
END AS QuantityText
FROM OrderDetails;
四、while语句
4.1 有限循环
while语句就是只要条件为真就会一直执行。语法如下:
WHILE condition
BEGIN
{...statements...}
END
比如我要做一个打印一到十的循环:
declare @counter int
set @counter=1
while ( @counter <= 10)
begin
PRINT 'counter = ' +convert(varchar,@counter) --注意字符和数字拼接需要将数字转为字符
set @counter = @counter + 1
end
演示:
4.2 无限循环
如果是这样,则会无限循环,因为没有停止跳出循环:
DECLARE @Counter INT
SET @Counter=1
WHILE ( @Counter <= 10)
BEGIN
PRINT '无限循环中...!'
END
五、break语句
break可以帮助我们强制停止循环,句子如下:
declare @Counter int
set @Counter=1
while ( @Counter <= 10)
begin
print ' counter= ' + CONVERT(VARCHAR,@Counter)
if @Counter >=7
begin
break
end
set @Counter = @Counter + 1
end
演示:
在这个例子中,我们检查了变量的值,当值等于或大于 7 时,代码进入 IF…ELSE 块并执行 BREAK 语句,因此它立即退出循环。为此,该消息显示变量的值最多为 7。如果 IF…ELSE 语句的条件不满足,则循环将运行,直到条件结果为假。
六、return 语句
return 命令用于结束当前程序的执行,返回到 一个调用它的程序或其他程序。在括号内可指定一个返回值。语法如下:
七、goto语句
Goto语句可以让程序跳转到一个指定的标签处并执行其后的代码。作为跳转目标的标识符可为数字与字符的组合 但必须以 ": "结尾,如 '2: '或‘3b1: ’
比如打印一到五:
declare @x int
select @x = 1
label:
print @x
select @x = @x + 1
while @x < 6
goto label
演示:
八、waitfor语句
这个语句就是用于时间等待,间隔等。例子如下:
1-等五秒钟显示“川川你好”:
waitfor delay'00:00:5'
print '川川你好'
演示:
2-在2:59显示“该睡觉了!”
waitfor time'2:59:00'
print '该睡觉了!'
演示: