这个问题将是接受多个 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
这仅在填充参数并且 LEFT OUTER JOINS 无法正确过滤时才有效。在接受 null 作为有效参数的同时进行过滤的方法是什么?