2016-12-24 82 views
0

我正在測試派生表查詢。當我運行下面的查詢時,它顯示錯誤。無效的對象名稱派生表

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

回答

0

您無法重複使用該語法的派生表。
使用CTE(公用表表達式)。

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

如果你解釋爲什麼我不能使用該語法重用派生表可能會更好? –

+1

這是根本不支持的語言,提供了另一種選擇。 –

+0

感謝您的回答。 :) –