我正在尝试在SQL Server 2008中创建一个名为“imageFileFromAddress”的用户定义的内联表值函数:
CREATE FUNCTION [dbo].imageFileFromAddress (@address NVARCHAR(max))
RETURNS TABLE AS RETURN(
--Guts of the function.
);
从逻辑的角度来看,回报的内容是这样的:
WITH addresses AS
(
SELECT * FROM [dbo].[bookPageFromAddress](@address)
)
SELECT * FROM [dbo].[imageFileFromBookPage](addresses.Book, addresses.Page)
因此,bookPageFromAddress和imageFileFromBookPage也是用户定义的内联表值函数;我需要将address参数传递给前者,后者生成一个表作为输出,并使用其行作为后者的参数,获取它生成的表,将它们拼接成一个表,然后返回结果。显然上面的实际代码对此无效,但我似乎无法理解正确的语法。这样做的正确方法是什么?
答案 0 :(得分:2)
SELECT *
FROM
[dbo].bookPageFromAddress(@address) addresses
outer apply [dbo].[imageFileFromBookPage](addresses.Book, addresses.Page) foo