为表中的每一行执行SQL函数

为表中的每一行执行SQL函数,sql,sql-server-2008,function,Sql,Sql Server 2008,Function,我已经实现了一个SQL函数,我想对从表返回的每一行执行它。为简单起见,假设函数接受@StudentId作为参数,并返回一个表/多行,其中Subject和Score作为列 我希望对从表返回的每个学生(比如学生)执行此函数,并使用以下格式将数据聚合到临时表中: 学生ID |科目|分数 我能想到的一种方法是在Students表上写一个游标,为每个student执行函数,并在temp表中收集信息。这是我唯一的选择还是有更好的方法来处理 我正在使用SQLServer2008R2 Amey好吧,如果没有合适

我已经实现了一个SQL函数,我想对从表返回的每一行执行它。为简单起见,假设函数接受@StudentId作为参数,并返回一个表/多行,其中Subject和Score作为列

我希望对从表返回的每个学生(比如学生)执行此函数,并使用以下格式将数据聚合到临时表中:

学生ID |科目|分数

我能想到的一种方法是在Students表上写一个游标,为每个student执行函数,并在temp表中收集信息。这是我唯一的选择还是有更好的方法来处理

我正在使用SQLServer2008R2


Amey

好吧,如果没有合适的规格,我只能建议您从以下内容开始(在编写任何游标、循环或临时表之前,请停止并提供更多详细信息):


此外,如果您提供有关函数本身的更多详细信息,我们可能会提供编写函数的更好方法(或根本不使用函数)。

是的,根据您的要求,根本不清楚是否需要函数。听起来你可能正在寻找加入。
SELECT s.StudentId, f.someColumn FROM dbo.Students AS s
  CROSS APPLY dbo.FunctionName(s.StudentId) AS f;