我正在做一个教程中的练习,问题是:
创建一个表变量,并用SalesLT.Product表中的不同颜色列表填充该变量。然后使用table变量过滤返回SalesLT.Product表中的产品ID、名称和颜色的查询,以便只返回具有table变量中列出的颜色的产品。您需要在解决方案中使用NVARCHAR(15),并确保使用提供的别名。
我写了下面的代码,但得到错误的消息,我的声明函数是错误的,你能帮我检查一下原因吗,代码可以工作,并返回一个包含所需信息的表
DECLARE @Colors AS TABLE (Color NVARCHAR(15));
INSERT INTO @Colors
SELECT DISTINCT Color FROM SalesLT.Product;
SELECT ProductID, Name, Color
FROM SalesLT.Product
WHERE Color IN (SELECT Color FROM  @Colors);发布于 2020-04-10 09:21:24
DECLARE @Colores TABLE
(
Color NVARCHAR(15)
)
INSERT INTO @Colores(Color)
SELECT DISTINCT Color FROM SalesLT.Product
WHERE Color IS NOT NULL
SELECT p.ProductID, p.Name, p.Color FROM SalesLT.Product as p
JOIN @Colores as c
ON c.Color = p.Color
ORDER BY Color这是我想出来的代码,结果就是他们所要求的表格。此外,由于它们只询问出现在表中的那些表的Id、名称和颜色,我认为您不应该考虑那些具有空值的表,因为否则您只是从另一个表创建一个表变量,只是为了调用同一个表,这对我来说是没有意义的。我必须承认,练习的陈述可以更清楚一些。
https://stackoverflow.com/questions/48090024
复制相似问题