使用单元格中动态生成的行连接表行

CROSS APPLY 使你可以使用某些表值函数返回的动态生成的行连接表中的行。

想象一下,你有一个 Company 表,其中包含一个包含产品数组的列(ProductList 列),以及一个解析这些值并返回一组产品的函数。你可以从 Company 表中选择所有行,在 ProductList 列上应用此函数,并将生成的结果与父 Company 行连接

SELECT *
FROM Companies c 
     CROSS APPLY dbo.GetProductList( c.ProductList ) p

对于每一行, ProductList 单元格的值将提供给该函数,该函数将这些产品作为一组可以与父行连接的行返回。