--1.使用系统函数
--(1)显示到当前日期和时间为止试图登录SQL Server的次数。
select getdate( ) as '当前日期和时间',@@connections AS '登录的次数'
--(2)创建一个@myvar 变量,然后将一个字符串的值“This is a test”放在变量中,最后输出 @myvar 变量的值。
declare @myvar char(20)
set @myvar='This is a test'
print @myvar
--(3)定义一个变量@rows ,通过查询把学生总数赋值给变量,并输出@rows的值。
declare @rows int
set @rows=(select count(s_no) from student)
print @rows
--(4)使用 LTRIM 函数删除字符变量“ Five spaces are at the beginning of this string.”中的起始空格,
----输出时和字符串“Here is the string without the leading spaces:”进行连接后再输出。
declare @string varchar(100),@str varchar(100)
set @string=' Five spaces are at the beginning of this string.'
set @str='Here is the string without the leading spaces:'
print @str+ltrim(@string)
--(5)从GETDATE函数返回的日期中提取月份名。
select month(getdate())
select datepart(month,getdate())
--(6)返回服务器的主机名称
print host_name()
print @@Servername
--2.使用用户自定义函数
--(1)编写用户定义函数,要求:每次输入一个学号,计算该学生的所有课程的平均分,如果是85~100分,返回“优”;
--如果是75~84分,返回“良”;如果是65~74分,返回“中”;如果是0~64分,返回“差”。
create function st_score(@s_no char(8))
returns char(8)
as
begin
declare @avg numeric(4,2),@等级 varchar(8)
set @avg = (select avg(score)
from choice
where s_no=@s_no)
if @avg between 85 and 100
set @等级='优'
if @avg between 75 and 84
set @等级='良'
if @avg between 65 and 74
set @等级='中'
if @avg between 0 and 64
set @等级='差'
return @等级
end
-
-调用函数:
select dbo.st_score('111')
--(2)使用teachdb数据库中适当的表,创建一个自定义函数—kccj,该函数可以根据输入的学生姓名返回该学生选修的课程名称和成绩。
create function kccj(@s_name char(10))
returns table
as
return select course.c_name,choice.score
from student join choice join course on student.s_no = choice.s_no on course.c_no=choice.c_no
where s_name = @s_name
--使用join on 错误
create function kccj(@s_name char(10))
returns table
as
return select course.c_name,choice.score
from student, choice ,course
where student.s_no = choice.s_no and course.c_no=choice.c_no and s_name = @s_name
--调用
select *
from kccj('李平')
--(3)使用teachdb数据库中适当的表,创建一个自定义函数—xbxs,该函数可以根据输入的系部名称返回该系学生的学号、姓名。
create function xbxs(@s
_depart char(10))
returns table
as
return select s_no,s_name
from student
where s_department = @s_depart
--调用
select *
from xbxs('计算机')
--(4)使用系统存储过程sp_helptext查看kccj函数的文本信息。
exec sp_helptext _kccj
--(5)修改kccj函数,使该函数根据输入的学生学号返回该学生的姓名、选修课程名称和成绩。
alter function _kccj(@s_no char(10))
returns table
as
return select student.s_name, course.c_name,choice.score
from student, choice ,course
where student.s_no = choice.s_no and course.c_no=choice.c_no and sudent.s_no=@s_no
--调用
select *
from kccj('111')
rows函数的使用方法及实例--(6)删除xbxs函数。
drop function xbxs
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论