Sql 无效的对象名-派生表
我在测试派生表查询。当我运行下面的查询时,它会显示错误Sql 无效的对象名-派生表,sql,sql-server,sql-server-2008,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008,Sql Server 2008 R2,我在测试派生表查询。当我运行下面的查询时,它会显示错误 `Invalid object name 'result'.` 我真的很惊讶。有谁能澄清我的疑问,为什么它会抛出这个奇怪的错误 SELECT * FROM (SELECT 1 AS ID, 'Mike' AS Name) [result] WHERE result.ID NOT IN (SELECT ID FROM [result] WHERE Name = 'Mike') 不能使用该语法重用派生表。 使用(公共表表达式
`Invalid object name 'result'.`
我真的很惊讶。有谁能澄清我的疑问,为什么它会抛出这个奇怪的错误
SELECT
*
FROM (SELECT
1 AS ID,
'Mike' AS Name) [result]
WHERE result.ID NOT IN (SELECT
ID
FROM [result]
WHERE Name = 'Mike')
不能使用该语法重用派生表。
使用(公共表表达式)进行此操作
with [result] as
(SELECT
1 AS ID,
'Mike' AS Name)
SELECT
*
FROM result
WHERE result.ID NOT IN (SELECT
ID
FROM [result]
WHERE Name = 'Mike')
如果您能解释一下为什么我不能使用这种语法重用派生表,那就更好了。提供另一种替代方法的语言根本不支持这种语法。谢谢您的回答。:)