Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 无效的对象名-派生表_Sql_Sql Server_Sql Server 2008_Sql Server 2008 R2 - Fatal编程技术网

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')

如果您能解释一下为什么我不能使用这种语法重用派生表,那就更好了。提供另一种替代方法的语言根本不支持这种语法。谢谢您的回答。:)