T-SQL程序练习01
创始人
2024-04-28 22:05:34
0

目录

一、编写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

执行结果:

相关内容

热门资讯

海陆重工:业绩补偿涉及的股权转... 证券之星消息,海陆重工(002255)01月14日在投资者关系平台上答复投资者关心的问题。 投资者提...
万事达、Visa、Revolu... 【1月15日万事达、Visa等在跨境卡费用上限计划法律挑战中败诉】1月15日,万事达、Visa和英国...
小米YU7推出7年低息购车政策 每经AI快讯,1月15日,据小米汽车官微消息,小米YU7推出7年低息购车政策:首付4.99万元起,月...
惊险!14岁男生为拍照闯入铁轨... 1月12日,一则“14岁男生闯入铁轨拍照逼停火车”的新闻,冲上热搜。报道显示,该男生用钳子损坏封闭网...
AI时代“快播案”二审开庭,辩... 国内首起AI服务涉黄判刑案 作者/ IT时报 孙永会 编辑/ 郝俊慧 孙妍 1月14日下午,国内首起...
武汉两起知识产权调解案例入选最... 极目新闻通讯员 周丽梅 近日记者获悉,2025年,武汉两起知识产权调解案例入选最高法多元解纷案例库。...
人民调解为人民 依法调解促和谐 人民调解为人民 依法调解促和谐 为坚持和发展新时代“枫桥经验”,切实提升群众对《中华人民共...
欢瑞世纪股东青宥仟和陷借款合同... 1月15日,欢瑞世纪(000892)发布公告,股东北京青宥仟和投资顾问有限公司持有的2294万股股份...
【求证】霸王茶姬最新回应“起诉... 1月15日,“霸王茶姬及创始人起诉网友”的消息刷屏财经圈。 天眼查APP显示,近日,北京互联网法院向...