我有一个带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)
答案 0 :(得分:5)
OP正在使用内联表值函数,它看起来像是需要CROSS APPLY
......
Select *
From myTable mt
Cross Apply schema.fn_GetStuff(mt.ObjectID) f
答案 1 :(得分:1)
假设你的函数是一个标量值函数,你可以这样做:
select fn_GetStuff(Objectid)
from myTable
如果您的函数是表值,那么您需要使用cross apply
。
答案 2 :(得分:0)
您不需要加入,因为没有其他表格。你应该可以这样做:
SELECT fn_GetSTuff(t.ObjectId)
FROM myTable t