2013-09-16 36 views
0

我在SQL服務器的「AS」關鍵字中遇到了一個相當嚴重的問題。我正在執行多個LEFT JOIN並使用AS關鍵字爲結果集創建別名。我試圖在特定查詢中定義一個別名,並得到一個錯誤,指出「AS附近的語法不正確」。查詢將成功完成,但SQL服務器不允許我定義別名。AS無法在SQL Server下工作的原因是什麼?

我研究並試圖找到一些關於什麼可以和不能用AS關鍵字完成的更全面的文檔。我也認真考慮過我在某處寫了內置的可能性,並且只是錯過了它。

我已經提取了其他SQL的部分內容,涉及多個JOIN,但我遇到了同樣的問題。這裏是我正在處理的查詢的一個示例:

 
SELECT 
    D.ProjectID [Project ID], 
    D.VendorID [Vendor ID], 
    VND.VendorName [Name], 
    D.Modifiedby [User Modified] 
FROM 
    (SELECT 
     ProjectID, 
     VendorID, 
     Modifiedby 
    FROM [Project].[ProjectDocument] 
    ) AS D 

LEFT JOIN 
    (SELECT 
     VendorID, 
     VendorName 
    FROM [VendorTable].[Vendor] 
    ) AS VND 
ON D.VendorID = VND.VendorID AS V 

是否有任何理由爲什麼AS關鍵字會被SQL服務器拒絕?

+0

刪除尾隨'AS V'處理該問題。如果要混淆整個事件,則需要將整個查詢放在括號中。 – HABO

+0

爲什麼最後加上'as'作爲V?你爲什麼會加重?你想做什麼? – dcaswell

+0

抱歉,SUPER在這方面的延遲迴復。結束瞭解決這個問題。這是使用許多別名的較大查詢的一部分。當我分解它時,我無法確定爲什麼我的一些別名似乎在工作,有些沒有(這個特定的)。我不確定SO的運作方式如何,只是沒有答案的問題,但這可能是我的錯,因爲沒有真正解釋清楚。我的下一步行動是什麼? – hyperlit

回答

0

最後聲明說:

ON D.VendorID = VND.VendorID AS V 

從後部取出AS V

相關問題