SELECT A. * FROM(SELECT * FROM table1)A IF(私のパラメータ)= a 左結合(SELECT * FROM table2)B A. A.ID = B.ID
0
0
パラメータ 'prmtr’を取得する200行のストアドプロシージャがあります。
私のやりたいことは、パラメータに従って、ストアドプロシージャに "sql part"を追加することです。
例:
SELECT A. * FROM(SELECT * FROM table1)A IF(私のパラメータ)= a 左結合(SELECT * FROM table2)B A. A.ID = B.ID
2 回答
2
あなたはこれのようにそれをすることができます
SELECT A. * FROM(SELECT * FROM table1)A左ジョイン(SELECT * FROM table2)B @prmt = 'A' AND A.ID = B.ID
1
このようにクエリを変更することはできません - したがって、2つの選択肢があります。
SPROCに2つの別々のクエリがある(各ブランチに1つ) - 2つでも構いませんが、より複雑な組み合わせにはあまり適していません。
動的SQLを使用します。すなわち varchar(4000)`でクエリを構築し、それを呼び出すには `sp_ExecuteSQL`を使用してください。かなり明らかにあなたは余分な `
LEFT JOIN … '`などを含むように_string_を変更することができます。
とは言っても、私は_一般的には常に同じスキーマを返す単一のSPROCを好みます。パラメータに基づいて列を変更すると、ほとんどのORMツールと完全に一致しません。 見て何か