前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >T-SQL程序练习02

T-SQL程序练习02

作者头像
会洗碗的CV工程师
发布2022-12-28 14:44:17
6450
发布2022-12-28 14:44:17
举报
文章被收录于专栏:LongJava学习资料

目录

一、写一个GetMax函数

1. 具体要求

2. T-SQL程序代码

3. 结果显示

二、写一个存储过程AreYouFat

1. 具体要求

2. T-SQL程序代码

3. 结果显示

三、写一个T-SQL多语句表值函数 𝑟𝑎𝑛𝑘𝑠𝑖𝑔𝑛

1. 具体要求

2. T-SQL程序代码

3. 结果显示

四、创建MissWife表,写一个存储过程ReversePoem

1. 具体要求

2. T-SQL程序代码

3. 结果显示


一、写一个GetMax函数

1. 具体要求

1)输入:四个 1~9 的数字

2)输出:这四个数字组成的最大的整数

实现如图输出

2. T-SQL程序代码

代码语言:javascript
复制
create function GetMax(
 @num1 int,
 @num2 int,
 @num3 int,
 @num4 int
)
returns int
as
begin
  declare @str varchar(20);
  declare @temp table(n varchar(20));
  set @str='';
  insert into @temp
  select @num1 union all
  select @num2 union all
  select @num3 union all
  select @num4
  select @str = @str+n from @temp order by n desc;
  return cast(@str as int)
end

进行测试,OK,确认过眼神,答案确实没有问题。

3. 结果显示

二、写一个存储过程AreYouFat

1. 具体要求

1)输入:体重(单位是公斤),身高(单位是米)

2)输出:提示信息

体重过低,提示:您的体型过轻,请加强营养

体重正常,提示:您的体型完全正常,请注意保持

超重,提示:您的体型偏胖,请注意饮食

肥胖,提示:你的体型超重,请注意节食

3)返回值:BMI值

实现如下输出

2. T-SQL程序代码

代码语言:javascript
复制
create procedure AreYouFat(
  @weight float,
  @height float,
  @mess varchar(100) output,
  @bmi float output
)
as
begin
  set @mess=''
  set @bmi = @weight/(@height*@height)
  if(@bmi<18.5)
  set @mess='你的体型过轻,请加强营养'
  else if(@bmi>=18.5 and @bmi<=23.9)
  set @mess='你的体型正常,请注意保持'
  else if(@bmi>=24 and @bmi<=27.9)
  set @mess='你的体型偏胖,请注意饮食'
  else
  set @mess='你的体型超重,请注意节食'
end

/* 测试 */
go
declare @mess varchar(50)
declare @bmi float
exec dbo.AreYouFat 60.0,1.78, @mess output,@bmi output
print '身高体重指数是: '+cast(@bmi as varchar(20))
print '我给你的建议是: '+@mess
go

3. 结果显示

三、写一个T-SQL多语句表值函数 𝑟𝑎𝑛𝑘𝑠𝑖𝑔𝑛

1. 具体要求

写一个T-SQL多语句表值函数 𝑟𝑎𝑛𝑘𝑠𝑖𝑔𝑛,根据军衔列出所有的佩戴的标记

1)输入:军衔

2)输出:佩戴的标记

3)要求:使用多语句表值函数实现(不要试图建表)

4)调用函数实现类似如下的输出

2. T-SQL程序代码

代码语言:javascript
复制
create function ranksign(
  @sign varchar(10)
)
returns @rang table(标志 varchar(10))
as
begin
if(@sign like'_将')
insert into @rang values('一花')
else if(@sign like'_尉')
insert into @rang values('一杠')
else if(@sign like'_校')
insert into @rang values('二杠')
if(@sign like'上_')
insert into @rang values('三星')
else if(@sign like'中_')
insert into @rang values('二星')
else if(@sign like'少_')
insert into @rang values('一星')
else
delete @rang
if(@sign='大校')
begin
insert into @rang values('二杠')
insert into @rang values('四星')
end
return
end

/* 测试 */
select * from dbo.ranksign('中校')

3. 结果显示

四、创建MissWife表,写一个存储过程ReversePoem

1. 具体要求

1. 创建MissWife表,并插入数据

2. 写一个存储过程ReversePoem,实现如下格式输出

1)显示MissWife表中的内容

2)使用游标,根据MissWife表的内容,显示将该表从后往前倒着念的结果

2. T-SQL程序代码

代码语言:javascript
复制
/* 建表 */
create table MissWife(
  linetext varchar(50)
)

/* 插入数据 */
insert into MissWife values('枯眼望遥山隔水')
insert into MissWife values('往来曾见几心知')
insert into MissWife values('壶空怕酌一杯酒')
insert into MissWife values('笔下难成和韵诗')
insert into MissWife values('途路阻人离别久')
insert into MissWife values('讯音无雁寄回迟')
insert into MissWife values('孤灯夜守长寥寂')
insert into MissWife values('夫忆妻兮父忆儿')

/* 查询表是否成功插入数据 */
select * from MissWife

/* 存储过程 */
create procedure ReversePoem
as
declare @linetext1 varchar(50)
declare @str varchar(200)
declare @start1 int
declare line_cursor cursor for
select linetext from MissWife
begin
  open line_cursor
  set @str=''
  print '思妻诗'
  fetch next from line_cursor into @linetext1
  while @@FETCH_STATUS=0
    begin
	print @linetext1
	set @str=@str+@linetext1
	fetch next from line_cursor into @linetext1
	end
  print ''
  set @start1 = 1
  set @str = reverse(@str)
  print '思夫诗'
  while(@start1<len(@str))
    begin
	print substring(@str,@start1,7)
	set @start1 = @start1+7;
	end
	close line_cursor
  deallocate line_cursor
end

/* 测试 */
exec ReversePoem

3. 结果显示

OK啊,本次T-SQL练习就到此结束了,如有疑问可以私信练习博主(⊙o⊙)!!! 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、写一个GetMax函数
    • 1. 具体要求
      • 2. T-SQL程序代码
        • 3. 结果显示
        • 二、写一个存储过程AreYouFat
          • 1. 具体要求
            • 2. T-SQL程序代码
              • 3. 结果显示
              • 三、写一个T-SQL多语句表值函数 𝑟𝑎𝑛𝑘𝑠𝑖𝑔𝑛
                • 1. 具体要求
                  • 2. T-SQL程序代码
                    • 3. 结果显示
                    • 四、创建MissWife表,写一个存储过程ReversePoem
                      • 1. 具体要求
                        • 2. T-SQL程序代码
                          • 3. 结果显示
                          相关产品与服务
                          对象存储
                          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档