私は多くを検索しましたが、複数の列を一度に返すサブクエリはありません。次のコードは動作しますが、それは吸う:サブクエリから複数の列を選択する
私は実際に関数にib.Idを渡し、fnGetItemPath機能を3回を呼び出さずに全体の列1、列2、COLUMN3列を取得する方法は考えを持っていない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
。
ありがとうございます。
を?それがテーブル値の関数なら、それは動作するはずです – Dan
はい、それはテーブル値の関数です。しかし、上記のSQLコードは実際には効率的ではありません。なぜなら、別々の関数を別々に3回実行しなければならず、これは役に立たないからです。一度に3つの列を一度取得するためには、関数を一度実行するメカニズムが必要です。何か案が? –
テーブル値関数の場合は、上記のようにする必要はありません。SELECT * FROM dbo.fnGetItemPath(ib.Id)) – Dan