/*在xscj数据库种创建返回table的函数,通过以学号作为实参调用该函数,可显示该学生各门功课的成绩和学分*/
CREATE function score_table(@student_id varchar(20))
returns @score table
(
xs_id varchar(20),
xs_name char(20),
kc_name char(20),
cj tinyint,
xf tinyint
)
as
begin
insert @score
select s.学号,s.姓名,p.课程名,p.学分,o.成绩
from xscj.[dbo].xs as s
inner join xscj.[dbo].xs_kc as o on (s.学号=o.学号)
inner join xscj.[dbo].kc as p on (o.课程号=p.课程号)
where s.学号=@student_id
return
end
/*多语句表值函数*/
SELECT * FROM XSCJ.[dbo].score_table('001101') /*多语句表值函数的调用*/
请问上面的return语句怎么没有返回值,应该后面要接个表才对啊,怎么返回的是空呢,但我调试了,最后结果又是对的啊!
到底是怎么回事,请高手解析下这里,最好是上面的语句从头到尾解释下,谢谢了,让我理解之后马上给你加分!
CREATE function score_table(@student_id varchar(20))
returns @score table
(
xs_id varchar(20),
xs_name char(20),
kc_name char(20),
cj tinyint,
xf tinyint
)
as
begin
insert @score
select s.学号,s.姓名,p.课程名,p.学分,o.成绩
from xscj.[dbo].xs as s
inner join xscj.[dbo].xs_kc as o on (s.学号=o.学号)
inner join xscj.[dbo].kc as p on (o.课程号=p.课程号)
where s.学号=@student_id
return
end
/*多语句表值函数*/
SELECT * FROM XSCJ.[dbo].score_table('001101') /*多语句表值函数的调用*/
请问上面的return语句怎么没有返回值,应该后面要接个表才对啊,怎么返回的是空呢,但我调试了,最后结果又是对的啊!
到底是怎么回事,请高手解析下这里,最好是上面的语句从头到尾解释下,谢谢了,让我理解之后马上给你加分!
from xscj.[dbo].xs as s
inner join xscj.[dbo].xs_kc as o on (s.学号=o.学号)
inner join xscj.[dbo].kc as p on (o.课程号=p.课程号)
where s.学号=@student_id 这个查询没有结果