この質問は、複数のID値を受け入れるT-SQLストアドプロシージャの最後の回答の補遺になります
ストアドプロシージャにパラメータとしてIDのリストをいくつか渡します。データが送信されない場合、それぞれのデフォルトはnullになります。たとえば、ストアドプロシージャによってIDが1、2、5、7、20の食品が返されるようにします。また、カラーIDと製造場所IDのリストを送信します。これらのIDのコンマ区切りリストを渡します。上記の質問の最後の回答と同様に、各パラメーターのデータを使用して一時テーブルを作成します。次に、次のようなselectステートメントが必要です。
SELECT * FROM Candies
INNER JOIN #TempColors
ON Candies.ColorsID = #TempColors.ColorID
INNER JOIN Locations
ON Candies.LocationID = Locations.LocationID
これは、パラメーターが入力され、LEFTOUTERJOINSが適切にフィルター処理されない場合にのみ機能します。nullを有効なパラメータとして受け入れながらフィルタリングする方法は何ですか?