SQL SERVER中的流程控制语句


 流程控制语句


 是指用来控制程序执行和流程分至点额命令,一般指的是逻辑计算部分的控制。


1.Begin End语句


封装了多个T-SQL语句组合,将他们组成一个单元来处理。一般在条件查询或者循环等控制流程语句中,要查询满足特定条件的操作时会用到。Begin……end可以嵌套使用。


语法如下:

begin
--<sql语句或程序块>
end 


例子

begin
--<sql语句或程序块>
select * from StudentInfo 
update StudentInfo set money =50
end 

2.判断语句


当满足某种特定条件的时候才执行的语句,通常就是我们所说的 If……else语句。通过做出判断,选择执行某条语句或语句块


语法如下:

if<条件表达式>
	--<sql语句或程序块>
else<条件表达式>
    -- <sql语句或程序块>


例子

--declare 是声明的意思
	declare @money int
	select @money=money from StudentInfo where stuid ='01'
	if @money >20
	print '钱太多了'
	else
	print '钱太少了'

其中<条件表达式>可以是各种表达式的组合,但是必须是true或者falseElse是可选的,最简单的if语句没有else部分


3.检测语句


If……exists语句时用来检测数据是否存在,当然了我们也可以通过检测匹配行count(*)来实现,但是没有if……exists效果好。因为如果只要找到第一条匹配的数据的话,服务器就会停止检测


语法规则

if [not]exists (select 查询语句)
	<命令行或语句块>
	else <条件表达式>
	<命令行或语句块>

例子 

--检查学号为01的学生是否存在
	if exists (select * from StudentInfo where stuid='01')
	print '这个学生存在'
	else
	print '这个学生不存在'


4.多分支判断语句


Case……when结构提供比if……else结构更多的选择和判断机会,如果学习过编程语言的同学来说,我们应该见过这种结构的语句。使用它可以很方便的实现多分支判断,从而避免if……else的语句嵌套使用。语法规则有两种


规则一

case<算术表达式>
		when<算术表达式>then<运算符>
		when<算术表达式>then<运算符>
		[else<算术表达式>]
	end

规则二

case
	when<算术表达式>then<运算符>
		when<算术表达式>then<运算符>
		[else<算术表达式>]
	end

例子

--选择某一条件
	select money=
	case
	--对该条件进行选择分支判断
	when(money<20) then '太少了'
	when(money>20) then '太多了'
	else '还行吧'
	end 
	from StudentInfo 

 

5.循环语句


可以重复执行sql语句或者要执行的语句块,只要指定的条件成立即可


Break命令让程序完全跳出循环语句,结束while命令,continue是让命令继续返回执行


语法规则

while <条件表达式>
begin
<sql语句或者程序块>
break
continue
<sql语句或者程序块>
end

例子

--计算1+2+3……100的和

declare @i int,@small int
select @i=1,@small=0

while @i<=100   --判断的条件
begin
set @small =@small +@i 
set @i=@i+1
continue
end
print '1+2+3……100的和是'
print @small


6.跳转语句


使用goto语句可以改变程序的流程,让程序自动跳到我们要执行的程序行

语法规则:

Goto标识符:

例子

--计算1+2+3……100的和

declare @i int,@small int
select @i=1,@small=0

while @i<=100   --判断的条件
begin
set @small =@small +@i 
set @i=@i+1
goto wode
continue
end
print '1+2+3……100的和是'
print @small


wode:
print '我跳出来了'


小结:


这些语句时我们在学习SQL SERVER中会经常遇到的,其实也不难,与我们平常学习的编程语言中的控制结构相同,只不过是格式可能的略作修改,只要尝试下,找几个例子练一下即可。


 


SQL SERVER中的流程控制语句,布布扣,bubuko.com

SQL SERVER中的流程控制语句

上一篇:ORACLE 按表字段值的不同统计数量


下一篇:VS2008下 使用C#做windows mobile 6.0开发 使用sqlite数据库