tsqlif语句
Ⅰ 用T-sql流程控制语句编写程序,求两个数的最大公约数和最小公倍数
可以定义两个函数来求最大公约数和最小公倍数,程序如下
/*求两个数的最大公约数*/
create function GetGys(@num1 int,@num2 int)
returns int --返回值
as
begin
declare @times int --计数器
declare @min int --存储两个数的较小者
declare @result int --保存结果
if(@num1>=@num2)
set @min=@num2
else
set @min=@num1
set @times=@min
while(@times<=@min) --循环
begin
if(@num1%@times=0 and @num2%@times=0)
begin
set @result=@times
break
end
set @times=@times-1
end
return @result
end
/*求两个数的最小公倍数*/
create function GetGbs(@num1 int,@num2 int)
returns int
as
begin
declare @result int --结果
declare @max int --保存两个数的大者
declare @times int
if @num1<=@num2
set @max=@num2
else
set @max=@num1
set @times=@max
while(@times>=@max)
begin
if(@times%@num1=0 and @times%@num2=0)
begin
set @result=@times
break
end
set @times=@times+1
end
return @result
end
最后测试:
运行
select dbo.GetGys(15,20) as 最大公约数,dbo.GetGbs(15,20) as 最小公倍数
显示结果:
最大公约数 最小公倍数
5 60
Ⅱ sql的循环,判断,跳转语句
流程控制语句
封装了多个T-SQL语句组合,将他们组成一个单元来处理。Begin……end可以嵌套使用。
语法如下:
例子
语法如下:
例子:Else是可选的,最简单的if语句没有else部分
If……exists语句时用来检测数据是否存在,当然了我们也可以通过检测匹配行count(*)来实现,但是没有if……exists效果好。因为如果只要找到第一条匹配的数据的话,服务器就会停止检测。
语法规则
例子
Case……when结构提供比if……else结构更多的选择和判断机会
例子
可以重复执行sql语句或者要执行的语句块,只要指定的条件成立即可。
语法规则
例子
使用goto语句可以改变程序的流程,让程序自动跳到我们要执行的程序行
例子
Ⅲ SQL中如何使用IF语句
SQL中的if语句与伪代码的写法很相似,即:
IF (条件) then
执行语句体
END IF;
举例:
begin
if 1 > 0 then
dbms_output.put_line('1>0');
end if;
end;
Ⅳ 简述t-sql语言中if,,,else语句的作用
首先
if…else
begin…end是SQL流程控制语句,作用是使得大部分业务逻辑可以在数据库层面进行。
语法:
begin
{sql语句或语句块}
end
(注意:begin
和
end要成对使用)
if
布尔表达式
{sql语句或语句块}
else
布尔表达式
{sql语句或语句块}
在没有流程控制语句的情况下,T-SQL语句是按照从上到下的顺序逐个执行.
使用流程控制语句可以让开发人员可以基于某些逻辑进行选择性的跳转,实现了类似高级语言的跳转结构.