Sub Query然后使用AS加入

时间:2014-06-20 04:28:59

标签: tsql

我认为有人写了一个过于复杂的查询。我不太明白' 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"开始关注任何事情。谢谢。

2 个答案:

答案 0 :(得分:1)

AS用于引入别名,即另一个名称,无论是列还是查询结果。在这种情况下,查询(SELECT fact_group_pl_agg.[dim_div_mgmt_key] ...)的结果集将被赋予别名[tableau_fact_group_committee_pl_agg]

之后,INNER JOIN子句只是将第一个查询的结果集连接到具有指定条件的指定表。

答案 1 :(得分: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