我可以在查询开始时创建一个 SQL 别名吗(在 SELECT and/or FROM 之前)?

Can I create a SQL Alias at the start of my query (Before SELECT and/or FROM)?

我正处于通过 Google 在 Coursera 上学习数据分析课程 SQL 的初级阶段。 虽然我了解使用 AS ([原始名称] AS [新名称]) 临时重命名表和列的语法,但我不太确定我是否了解订单安排。他们在 Big Query 中提供了一个示例,如下所示。

1 SELECT
2  seasons.market AS university,
3  seasons.name AS team_name,
4  seasons.wins,
5  seasons.losses,
6  seasons.ties,
7  mascots.mascot AS team_mascot
8 FROM
9  `bigquery-public-data.ncaa_basketball.mbb_historical_teams_seasons` AS seasons
10 INNER JOIN
11  `bigquery-public-data.ncaa_basketball.mascots` AS mascots
12 ON
13  seasons.team_id = mascots.id
14 WHERE
15  seasons.season = 1984
16  AND seasons.division = 1
17 ORDER BY
18  seasons.market

本质上,让我感到困惑的是,当 bigquery-public-data.ncaa_basketball.mbb_historical_teams_seasons 被重新定义为行中的“季节”时,第 2 行如何为“seasons.market”获取正确的“table.column”地址9.

综上所述,我的问题是:是否存在仅用于建立别名的 SQL 函数? 我知道上面的例子是有效的,但我很难全神贯注于阅读第 1、9、2、3 行的程序…… 我希望能够通过在顶部而不是中间插入相关且简洁的名称来开始我的查询。理想情况如下图。

[ALIAS ESTABLISHMENT FUNCTION]
   reallylongtablename1 AS tbl1
SELECT
   exampleColumnA
FROM
   tbl1

非常感谢!

您可以使用 CTE:

with tbl1 as (
      select *
      from reallylongtablename1
     )
select exampleColumnA
from tbl1;

更常用于复杂查询,而不仅仅是缩短 table 名称。

关于您的第一个问题,这是一个关于如何在 SQL 查询中定义标识符范围规则的问题。在 SELECT 查询中,FROM 子句用于定义 table 别名和关联的列名。这些可以在其他条款中使用。