私はかなり複雑なt-sqlクエリを作成しています(DBAではないので私の基準では)その中で私がスカラー関数として抽象化して単一の値を計算して取得する、より複雑なサブクエリです。サブクエリ/関数の2番目の列からデータが必要であることがわかってから、今は止まってしまいました。明らかに、私は関数を複数の値を返すためにprocに変換することができます(あるいはサブクエリを直接メインクエリ内で宣言することもできます)。しかし、どのようにして親のselectクエリを個々のカラムとしてきれいに得ることができますか?サブクエリでサブクエリ/ procコールでサブクエリを選択するクエリ
結果を連結(カンマ区切り)したり、FOR XML(別のテーブルから*。1データを返す別のサブクエリにクエリが含まれています)を使用するなど、厄介なことをすることはできますが、 Entity Frameworkを使用しており、この2つの特定の値を厳密に型指定したままにしておくことをお勧めします。私のグーグルではEXISTSの使用が増え続けていますが、選択クエリから実際にカラムを取得する場所の例は表示されません。つまり、複数のカラムを使用してwhere句にロジックを適用するためにのみ使用されます。
これは実行できないものですか?私の最後の手段は、サブクエリをより多くの結合として結合しようとすることですが、私はクエリを読み込み可能に維持しようとしています。事前に
おかげで - 私は
:-)受け入れる用意しています答えはここに私が変更したいスカラー関数を使用して、「小説」の例だもある「いいえ、これは行うことはできません」
SELECT t1.Field1,
t2.Field2,
,dbo.fn_Select_ComplexStuff(t1.Field3) AS ComplexStuff
FROM MyTable1 AS t1
INNER JOIN MyTable2 AS t2 ON t1.id = t2.id
WHERE t1.Field4 = 'Albatross'
どのように知っているときに簡単に!あなたの返事にとても感謝してくれました:-) – Rob