0
我有,它返回基于参数的一组行,它看起来像这样例子的表函数:T-SQL调用表函数传递多个值和聚合结果
CREATE FUNCTION fn_get_records
(@PARENTID INT)
RETURNS @returnTable TABLE
(
-- columns returned by the function
Id INT NOT NULL,
Parent_Id INT NOT NULL,
Name VARCHAR(255) NOT NULL
)
AS
BEGIN
-- This select returns data
INSERT INTO @returnTable (Id, ParentId, Name)
SELECT Id, ParentId, Name FROM [whatever] where Parent_Id = @PARENTID
RETURN
END
我有一个包含另一个表这些“Parent Id”的列表,我应该为每个Parent_Id调用匹配特定查询的前一个函数并聚合所有结果。
父ID是使用类似
SELECT Parent_Id
FROM Parent_Records
WHERE Country = 'USA'
此选择的回报,例如,4行检索。对于每一行,我必须执行我的功能fn_get_records
并将所有结果汇总在一个视图或另一个函数中。
这有可能吗? 当然,我不希望因为我需要的东西快速使用游标
我想我从来没有使用CROSS APPLY语句,直到今天。 :-D – Raffaeu
@Raffaeu这是一个很棒的功能。把它看作记录级处理的子程序。 Google CROSS APPLY和OUTER APPLY。总是乐于学习新的东西。 –