当前位置: 首页 > news >正文

T-SQL程序练习01

目录

一、编写T-SQL程序,计算 1 + 2 − 3 + 4 − 5 … − 99 + 100 =?

二、写一个求三个数最大值的函数,输入为三个整数,输出为其中的最大值。

三、写一个T-SQL函数 𝑓𝑎𝑡,利用标准体重计算公式,根据身高判断体重是否合乎标准

四、写一个T-SQL多语句表值函数 𝑏𝑙𝑜𝑜𝑑,根据父母的血型列出孩子的所有可能血型


一、编写T-SQL程序,计算 1 + 2 − 3 + 4 − 5 … − 99 + 100 =?

T-SQL程序代码
declare @i int,@j int,@sum int,@str varchar(500),@temp int
select @i=2,@j=-1,@sum=1,@str='1'
while(@i<=100)
  begin
  set @temp=power(@j,@i)*@i
  set @sum = @sum+@temp
  if(@temp>0)
    set @str+='+'+cast(@temp as varchar(5))
  else
    set @str+=cast(@temp as varchar(5))
  set @i+=1
  end
print @str+'='+cast(@sum as varchar(3))
执行结果:

二、写一个求三个数最大值的函数,输入为三个整数,输出为其中的最大值。

运行该函数。类似如下输出
T-SQL程序代码

create function MyMax(
    @num1 int,
    @num2 int,
    @num3 int
)
returns int
as 
begin
  declare @Maxnum int
  if(@num1>=@num2)
    set @Maxnum = @num1
  else
    set @Maxnum = @num2
  if(@Maxnum>=@num3)
    set @Maxnum = @Maxnum
  else
    set @Maxnum = @num3
  return @Maxnum
end;

select dbo.MyMax( 7, 9, 13)

执行结果:

三、写一个T-SQL函数 𝑓𝑎𝑡,利用标准体重计算公式,根据身高判断体重是否合乎标准

1 )输入:身高,体重,性别
2 )输出:体重超出标准多少的判断
3 )调用函数实现类似如下的输出

T-SQL程序代码

create function fat(
  @height int,
  @weight int,
  @sex varchar(3)
)
returns varchar(50)
as
begin
  declare @tempWeight int,@str varchar(50)
  set @str='';
  if(@sex='男')
  set @tempWeight = (@height-105)
  else if(@sex='女')
  set @tempWeight = (@height-100)
  else 
  begin
    set @str='你输入的性别有误';
    return @str;
  end
  if(@tempWeight-@weight>0)
  set @str='你的体重比标准体重轻了'+cast(@tempWeight-@weight
  as varchar(4))+'公斤'
  else if(@tempWeight-@weight<0)
  set @str='你的体重比标准体重重了'+cast(@weight-@tempWeight
  as varchar(4))+'公斤'
  else
  set @str='你的身材非常标准'
  return @str;
end

执行结果:

四、写一个T-SQL多语句表值函数 𝑏𝑙𝑜𝑜𝑑,根据父母的血型列出孩子的所有可能血型

1 )输入:父亲血型,母亲血型
2 )输出:孩子的所有可能血型
3 )要求:使用 多语句表值函数 实现(不要试图建表)
4 )调用函数实现类似如下的输出

T-SQL程序代码 

create function blood(
  @faBl varchar(4),
  @maBl varchar(4)
)
returns @blood table(
  possibleblood varchar(4)
)
as
begin
if(@faBl='A'and @maBl='A')or(@faBl='O' and @maBl='A')
  or(@faBl='A'and @maBl='O')
  begin
    insert into @blood values('A');
    insert into @blood values('O');
  end
else if(@faBl='A' and @maBl='B')or(@faBl='B' and @maBl='A')
  begin
    insert into @blood values('A');
    insert into @blood values('B');
    insert into @blood values('AB');
    insert into @blood values('O');
  end
else if(@faBl='A' and @maBl='AB')or(@faBl='B' and @maBl='AB')
       or(@faBl='AB' and @maBl='A')or(@faBl='AB' and @maBl='B')
       or(@faBl='AB' and @maBl='AB')
  begin
    insert into @blood values('A');
    insert into @blood values('B');
    insert into @blood values('AB');
  end
else if(@faBl='B' and @maBl='B')or(@faBl='B' and @maBl='O')
       or(@faBl='O' and @maBl='B')
  begin
    insert into @blood values('B');
    insert into @blood values('O');
  end
else if(@faBl='AB' and @maBl='O')or(@maBl='AB' and @faBl='O')
  begin
    insert into @blood values('A');
    insert into @blood values('B');
  end
else if(@faBl='O' and @maBl='O')
  begin
    insert into @blood values('O');
  end
  return
end

执行结果:

相关文章:

  • 十、51单片机之步进电机
  • iPhone设置163邮箱 收件服务器和发件服务器填写内容
  • 四大领先优势加持,华为云会议服务更省心可靠!
  • 【AI理论学习】理解词向量、CBOW与Skip-Gram模型
  • 【学习笔记】JavaScript异步编程
  • Java Number Math 类
  • 【Go实现】实践GoF的23种设计模式:命令模式
  • ETCD的创建
  • 沥青瓦UKCA认证—EN 544
  • 一本通 1276:【例9.20】编辑距离
  • c语言复习之文件(十三)
  • 【OJ每日一练】1033 - 等级成绩
  • 5G URLLC标准化关键技术分析
  • 安装GitHub上一些库的注意事项
  • 知识蒸馏DEiT算法实战:使用RegNet蒸馏DEiT模型
  • 《MySQL高级篇》九、数据库的设计规范
  • 我,30多岁的土木工程人,终于转行了
  • 动态DNS与DPDK高性能DNS -DPDK环境搭建
  • 【Numpy基础知识】通用函数ufunc基础知识
  • 甜点cc的2022年回顾总结