(T-SQL)为什么此子查询需要别名?

(T-SQL)为什么此子查询需要别名?,sql,sql-server,tsql,alias,Sql,Sql Server,Tsql,Alias,非常简单的查询,只是想知道-为什么需要别名才能工作 FROM中的每个子查询都需要在SQL中使用别名 您必须进行定义,以便可以向查询中添加更多约束。否则,您的DB引擎将不知道如何引用子查询 我们可以将子查询结果视为一个新表,但该表没有名称,因此请给他一个别名。FROM中的每个子查询都需要在SQL中使用别名 您必须进行定义,以便可以向查询中添加更多约束。否则,您的DB引擎将不知道如何引用子查询 我们可以将子查询结果视为一个新表,但该表没有名称,因此请给他一个别名。如果愿意,子查询或派生表后的别名是S

非常简单的查询,只是想知道-为什么需要别名才能工作

FROM中的每个子查询都需要在SQL中使用别名

您必须进行定义,以便可以向查询中添加更多约束。否则,您的DB引擎将不知道如何引用子查询

我们可以将子查询结果视为一个新表,但该表没有名称,因此请给他一个别名。

FROM中的每个子查询都需要在SQL中使用别名

您必须进行定义,以便可以向查询中添加更多约束。否则,您的DB引擎将不知道如何引用子查询


我们可以将子查询结果视为一个新表,但该表没有名称,因此请给他一个别名。

如果愿意,子查询或派生表后的别名是SQL Server所必需的。这不仅是一个要求,也是一个非常好的主意。通常,列引用应该是限定的,这意味着它们包括表别名。如果没有别名,对子查询中列的引用将无法限定。我认为那是件坏事

SQL Server不是唯一需要别名的数据库。MySQL和Postgres以及大多数Postgres派生的数据库也可以这样做。Oracle和SQLite没有。谷歌的BigQuery也不例外


我不知道别名是否符合ANSI/ISO要求。但是,无论数据库如何,我总是使用别名。

如果愿意,子查询或派生表后的别名是SQL Server所必需的。这不仅是一个要求,也是一个非常好的主意。通常,列引用应该是限定的,这意味着它们包括表别名。如果没有别名,对子查询中列的引用将无法限定。我认为那是件坏事

别名需要的不仅仅是SQL Server数据库。MySQL和Postgres以及大多数Postgres派生的数据库也可以这样做。Oracle和SQLite没有。谷歌的BigQuery也不例外


我不知道别名是否符合ANSI/ISO要求。但是,无论数据库如何,我总是使用别名。

SQL Server要求FROM子句中的所有子查询都有别名。谢谢。这是T-SQL的一个特点,看起来像postgresql。。。还是通用的SQL?是否有原因,或者可能是过于技术性的解释?SQL Server要求FROM子句中的所有子查询都有别名。谢谢。这是T-SQL的一个特点,看起来像postgresql。。。还是通用的SQL?有没有一个原因,或者可能是一个过于技术性的解释?
SELECT 
*

FROM

 (SELECT 
    ROW_NUMBER() OVER (PARTITION BY a.vendorid ORDER BY a.CreatedDateUTC) as RowNum
    ,*

 FROM 
    ZpVendors_Kim.dbo.VendorPaymentAcceptanceAudit a) Needs_Alias_Here

 WHERE 
    RowNum = 1