首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL中的Declare语句出错

SQL中的Declare语句出错
EN

Stack Overflow用户
提问于 2018-01-04 14:46:18
回答 1查看 296关注 0票数 0

我正在做一个教程中的练习,问题是:

创建一个表变量,并用SalesLT.Product表中的不同颜色列表填充该变量。然后使用table变量过滤返回SalesLT.Product表中的产品ID、名称和颜色的查询,以便只返回具有table变量中列出的颜色的产品。您需要在解决方案中使用NVARCHAR(15),并确保使用提供的别名。

我写了下面的代码,但得到错误的消息,我的声明函数是错误的,你能帮我检查一下原因吗,代码可以工作,并返回一个包含所需信息的表

代码语言:javascript
运行
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2020-04-10 09:21:24

代码语言:javascript
运行
复制
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、名称和颜色,我认为您不应该考虑那些具有空值的表,因为否则您只是从另一个表创建一个表变量,只是为了调用同一个表,这对我来说是没有意义的。我必须承认,练习的陈述可以更清楚一些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48090024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档