0

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)
4

3 に答える 3

5

OPはインラインテーブル値関数を使用しているように見えるので、CROSS APPLY...

Select  *
From    myTable mt
Cross   Apply schema.fn_GetStuff(mt.ObjectID) f
于 2013-03-20T15:32:46.743 に答える
1

関数がスカラー値関数であると仮定すると、次のことができます。

select fn_GetStuff(Objectid)
from myTable

関数がテーブル値の場合、 を使用する必要がありますcross apply

于 2013-03-20T15:31:54.540 に答える
0

別のテーブルがないため、参加する必要はありません。あなたはこれをしても大丈夫なはずです:

SELECT fn_GetSTuff(t.ObjectId)
FROM myTable t
于 2013-03-20T15:32:05.497 に答える