2012-06-28 40 views
1

我想为父结果的每一行从函数中获取结果集。这里是table1从函数返回查询结果的结果

column 
------ 
a1 
a2 
a3 
a4 
a5 

我想通过表1循环,并获得在该列中每个项目的函数的结果。该函数返回一个表。

SELECT (SELECT * FROM functionReturnsTable(a.column)) 
FROM (SELECT column FROM table1) a 

我已经尝试了上述但我得到的错误

只有一个表达式可以在选择列表时,子查询不与EXISTS引入被指定的查询。

我该如何编写一个查询/函数,它将通过table1循环并将每个项目的结果合并到一个表中?

回答

3

也许是这样的:

SELECT * FROM dbo.table1 AS a 
CROSS APPLY dbo.functionReturnsTable(a.column) AS f; 

虽然你可能不会在量产版使用SELECT *,你可能会经常使用模式前缀和语句结束,对不对? :-)

另外,请别再想这是一个“循环” ......

+0

根据您的回答,我使用SELECT DISTINCT列,*的时刻。让我试试这个。 '循环'心态的好处。 – Kermit