我有一个带有 ID 的简单表:
ObjectId
----------
100
101
102
我想像这样多次执行函数 fn_GetStuff(Id) :
fn_GetStuff(100)
fn_GetStuff(101)
fn_GetStuff(102)
是否可以在不使用循环的情况下做到这一点?
我试过这个它不起作用:
SELECT *
FROM myTable
INNER JOIN fn_GetStuff(myTable.ObjectId)
我有一个带有 ID 的简单表:
ObjectId
----------
100
101
102
我想像这样多次执行函数 fn_GetStuff(Id) :
fn_GetStuff(100)
fn_GetStuff(101)
fn_GetStuff(102)
是否可以在不使用循环的情况下做到这一点?
我试过这个它不起作用:
SELECT *
FROM myTable
INNER JOIN fn_GetStuff(myTable.ObjectId)
OP 正在使用它看起来像的内联表值函数,因此他们需要一个CROSS APPLY
...
Select *
From myTable mt
Cross Apply schema.fn_GetStuff(mt.ObjectID) f
假设你的函数是一个标量值函数,你可以这样做:
select fn_GetStuff(Objectid)
from myTable
如果您的函数是表值的,那么您将需要使用cross apply
.
您不需要加入,因为没有另一张桌子。你应该可以这样做:
SELECT fn_GetSTuff(t.ObjectId)
FROM myTable t