34,588
社区成员
发帖
与我相关
我的任务
分享
create function 先修课(@s int)
returns table
as
begin
return (select 学生表.学号,姓名,先修课 from 学生表,成绩表,课程表
where 学生表.学号=成绩表.学号 and 成绩表.课程号=课程表.课程号 and 学号=@s )
end
这是语法问题..
T-SQL联机丛书查CREATE FUNCTION
当创建内联表值函数时,不用加BEGIN..END,而直接RETURN
如:
CREATE FUNCTION fn_name
RETURNS TABLE
AS
RETURN(
sql_query;
)
当创建多语句的表值函数时,需要加BEGIN..END.
如:
CREATE FUNCTION fn_name
RETURN @t TABLE(col1 col1_type,col2 col2_type)
AS
BEGIN
INSERT INTO @t
SELECT col1,col2
FROM tb_name
RETURN
END
创建标量函数就不用说了..
create function 先修课(@s int)
returns table
as
begin
declare @i nvarchar(2000)
set @i=(select 学生表.学号,姓名,先修课 from 学生表,成绩表,课程表
where 学生表.学号=成绩表.学号 and 成绩表.课程号=课程表.课程号 and 学号=@s )
return @i
end