0

私はたくさん検索しましたが、サブクエリで複数の列を一度に返す機会はまだありません。次のコードは機能しますが、問題があります。

SELECT
    (SELECT Column1 FROM dbo.fnGetItemPath(ib.Id)) AS Col1,
    (SELECT Column2 FROM dbo.fnGetItemPath(ib.Id)) AS Col2,
    (SELECT Column3 FROM dbo.fnGetItemPath(ib.Id)) AS Col3
FROM ItemBase ib

fnGetItemPath関数を3回呼び出さずに、ib.Idを関数に渡して、Column1、Column2、Column3の列全体を取得する方法が実際にはわかりません。

前もって感謝します

4

2 に答える 2

4

tiを「FROM」部分に移動して、外部適用(または相互適用)を使用できます。

構文を自分で確認してください。ただし、次のようになります。

SELECT Column1, Column2, Column3
FROM ItemBase ib
Outer Apply dbo.fnGetItemPath(ib.Id)
于 2012-05-14T07:02:52.883 に答える
0

これはうまくいきませんか?

select 
     (select column1, column2, column3 from dbo.fnGetItemPath(ib.Id)) 
from ItemBase ib

または何か他のものが必要ですか?

于 2012-05-14T06:55:58.403 に答える