SQL 中的if判断语句、while循环语句、和运算符

Sql中 if else判断语句

1. if...else 流程控制块语句

语法:

if Boolean_expression
 begin
....
 end
else
 begin
...
 end 

注意:

--1.没有bool值,只有条件表达式

--2.没有{} 只有begin end

--3.可以多重嵌套

--4.如果包含的语句只有一句,也可以省略begin end

--5.if ...else 里面必须有处理语句,如果没有就报错。

--6.不能在select语句中使用。

例如:

 if(1=1)
	begin
		print '剑云锋'
		print 'Welcome!'
	end
else
		print 'You are wrong!'


while循环语句

语法:

WHILE Boolean_expression
 { sql_statement | statement_block }
 [ BREAK ]
 { sql_statement | statement_block }
 [ CONTINUE ]

解释:

while 判断表达式
 begin 
 --循环体
 end
else
 begin
 --输出表达式
 end
end--循环结束标志
--continue 继续
--break 跳出循环

注意:

--1.可以嵌套

--2.没有{} 只有begin end

--3.不能使用true /false ,必须使用条件表达式

--4.如果包含的语句只有一句,也可以省略begin end

--5.可以使用break / continue

--6.可用在select语句中。

例如:计算1-100的和,到50时停止跳出

declare @i int 
declare @sum int 
set @i = 1
set @sum = 0
while @i<10
	begin 
	if(@i!=5)
		begin
			set @sum = @sum+@i
			set @i = @i + 1
		end	
	else
		break
	end --循环结束标志
print @sum
go

结果:


Sql 运算符

数据库Teacher表:

数据库TCourse表:

1.算数运算符 + 、 - 、* 、 / 、 % 。

示例:

declare @operation0 int 
set @operation0 = 1+1 --'+'
declare @operation1 int 
set @operation1 = 1-1 --'-'
declare @operation2 int 
set @operation2 = 5%3 --'取余'
declare @operation3 int 
set @operation3 = 2*3 --'*'
declare @operation4 int 
set @operation4 = 6/4 --'/,取整'
print '1+1='+cast(@operation0 as char)
print '1-1='+cast(@operation1 as char)
print '5%3='+cast(@operation2 as char)
print '2*3='+convert(char,@operation3)	
print '6/4='+convert(char,@operation4)

结果:

2.比较运算符 > < >= <= <> != !< !>

2.1.> < >= <=

--1.查找KPS>90的结果集
select * from TCourse where KPS>90
--2.查找KPS<90的结果集
select * from TCourse where KPS<90
--3.查找KPS>=90的结果集
select * from TCourse where KPS>=90
--4.查找KPS<=90的结果集
select * from TCourse where KPS<=90

结果:

2.2. <> != !< !>

--5.查找KPS<>90的结果集
select * from TCourse where KPS<>90
--6.查找KPS!=90的结果集
select * from TCourse where KPS!=90
--7.查找KPS!>90的结果集
select * from TCourse where KPS!>90
--8.查找KPS!<90的结果集
select * from TCourse where KPS!<90

结果:

3.逻辑运算符 and, or, between(),any(),in(),like(),some(),not() ,exists()

3.1 and, or, between..and,all()

--1.选择KPS>90和Name='ee' 的结果集
select * from TCourse where KPS>90 and Name='ee'
--2.选择KPS>90 或者 KPS<80 的结果集
select * from TCourse where KPS>90 or KPS<80
--3.选择KPS在80-90之间的结果集
select * from TCourse where KPS between 80 and 90
--4.选择满足所有KPS>90的名字条件的结果集
select * from TCourse where Name=all(select Name from TCourse where KPS>90)

3.2 any(),some(),exists(),not exists()

--5.选择满足任意一个KPS>90的名字条件的结果集
select * from TCourse where Name=any(select Name from TCourse where KPS>90)
--6.选择满足任意一个KPS!>90的名字条件的结果集
select * from TCourse where Name=some(select Name from TCourse where KPS!>90)
--7.存在Teacher.Name = TCourse.Name的TCourse表中所有的结果集
select * from TCourse where exists (select * from Teacher where Teacher.Name = TCourse.Name )
--8.不存在Teacher.Name = TCourse.Name的TCourse表中所有的结果集
select * from TCourse where not exists (select * from Teacher where Teacher.Name = TCourse.Name )

注:

not 不能单独使用,必须联合like , exists,in等一起使用。


运算符优先级

了解更多
举报
评论 0