2014-06-20 45 views
0

我認爲有人寫了一個過於複雜的查詢。我不太清楚最後'AS'的含義。基本上我可以在這個腳本中看到兩個子查詢。爲了減少它,我只包括一列。子查詢,然後使用AS加入

SELECT [tableau_fact_group_committee_pl_agg].[dim_div_mgmt_key] AS [dim_div_mgmt_key] 
FROM 

(
SELECT fact_group_pl_agg.[dim_div_mgmt_key] 

FROM fact_group_pl_agg 

join dbo.dim_DIV_MGMT_v d on fact_group_pl_agg.dim_div_mgmt_key = d.dim_div_mgmt_key 

WHERE EXIST 

(SUB QUERY 2: SELECT FROM WHERE) 
) 
AS 

[tableau_fact_group_committee_pl_agg] 
INNER JOIN table 1 on col1 = col2 
INNER JOIN table 2 on col3 = col4 

誰能告訴我什麼 「AS [tableau_fact_group_committee_pl_agg] INNER JOIN」 確實給查詢? 遵循子查詢很簡單,因爲它只是使數據集每次都更小。但我沒有關注從「AS」開始的任何事情。謝謝。

回答

1

AS用於引入的別名即另一名稱時,它一列或查詢的結果。在這種情況下,查詢(SELECT fact_group_pl_agg.[dim_div_mgmt_key] ...)的結果集被賦予別名[tableau_fact_group_committee_pl_agg]

之後,INNER JOIN條款簡單連接的結果集的第一個查詢到指定條件的指定的表。

+0

謝謝。這使得它更清晰。而且[tableau_fact_group_committee_pl_agg]表已經存在,這使得更難將其視爲查詢的別名。 – gemmo

0

在TSQL,必須有用於在查詢中的每個表表達式(表,子查詢,表值函數等)唯一的名稱。 AS關鍵字允許您爲表表達式分配一個名稱(稱爲別名),滿足子查詢和表值函數的命名要求,或者爲表提供更短或更有意義的名稱。 AS是可選的,並且暗示如果你沿着select t.* from mytable t join (select top 1 id from dbo.mytable2) t2 on t2.id=t.id在這種情況下,兩個MYTABLE和子查詢表表達式東西線的別名,而無需使用AS