0

我有一个有两个输出的函数......

dbo.func1(@code) -> Table(out1, out2)

这个函数成本太高,计算这两个输出需要很多时间。我有一个这样的查询:

SELECT code, name,
(SELECT out1 dbo.func1(code)), (SELECT out2 dbo.func1(code))
FROM MyInnerJoinedTablesResult

但是我的昂贵功能是调用两次,但我想为表中选择的每条记录调用一次......并导致任何行中有两列(不是双行)

SELECT code, name,
(out1 in func1), (out2 in func2)
FROM MyInnerJoinedTablesResult
4

1 回答 1

1

您需要使用交叉应用

SELECT code, name, func.out1, func.out2
FROM MyInnerJoinedTablesResult
cross apply dbo.func1(code) as func
于 2014-09-08T20:49:39.520 回答