【发布时间】:2018-01-26 01:11:34
【问题描述】:
表类型多值参数传递给 SP 可以在 SELECT 查询的 WHERE 子句中使用 TVP 吗?
例如:
SELECT * FROM PRODUCTS
WHERE ProductCategoryId IN @tvpCategories
我的意思是,我们可以使用 TVP 代替子查询(示例如下)吗?
SELECT * FROM PRODUCTS
WHERE ProductCategoryId IN (SELECT Id from ProductCategories)
感谢您的帮助
【问题讨论】:
-
是的,你可以:
SELECT * FROM PRODUCTS WHERE ProductCategoryId IN (SELECT Id from @tvpCategories) -
但是把它当作另一个表。因此,您必须从中为您的 IN 子句选择必填字段。
-
这是一张桌子。加入它。
-
SELECT PRODUCTS.* FROM @tvpCategories 类别 LEFT JOIN PRODUCTS on PRODUCTS .ProductCategoryId = categories.id
标签: sql sql-server