内联表值函数是一种可重用的表表达式,能够支持输入参数。除了支持输入参数以外,内联表值函数在其他方面都与视图相似。
IF OBJECT_ID('dbo.fn_getstu') IS NOT NULL
DROP FUNCTION dbo.fn_Getstu;
go
CREATE FUNCTION dbo.fn_Getstu
(@sno AS INT) RETURNS TABLE
AS
RETURN
SELECT Sno, Sname, Ssex, Sbirthday, Class
FROM Student
WHERE Sno = @sno;
GO
此内联表值函数接受一个代表学生ID的输入参数@sno,返回输入id下的学生信息。
一下代码对这个函数进行查询,返回ID为107的学生;
SELECT sno, sname, ssex
FROM fn_Getstu(107)
返回如下输出;
此外,可以在连接中引用内联表值函数。例如,以下查询将内联表值函数于Score表进行连接,对学生107的成绩进行匹配;
SELECT S.Sno, sname, ssex, degree
FROM fn_Getstu(107) AS S
JOIN Score AS SC
ON S.Sno = SC.Sno;
返回如下输出;