SQL 中 WITH 的语法用法用于 CTE 和属性
Syntactical use of WITH in SQL for CTEs and Properties
我知道 WITH
在 SQL 中的两种用法:
- 表示 CTE(通用 Table 表达式)子句,创建一个临时 table 用于当前查询,并且
- 在 CTAS (CREATE TABLE AS) 语句中指定属性,例如Presto, AWS Athena, Cloudera,等等
然而,在阅读长查询时,我有好几次很难立即区分这两种用法,而且我一直在想,如果用另一个词来表示这两种用法是否更有意义,以提高可读性并避免歧义。
所以我的问题是:这两种用途是否有某种关联?它们是否源于某个共同的根源?
他们完全没有关系。 WITH
是一种类似于子查询的句法结构。另一个用于其他目的。
GROUP BY
和 ORDER BY
中的 BY
的类比。或者 AND
用于 BETWEEN
并作为独立的布尔运算符。他们只是碰巧有相同的名字。
我知道 WITH
在 SQL 中的两种用法:
- 表示 CTE(通用 Table 表达式)子句,创建一个临时 table 用于当前查询,并且
- 在 CTAS (CREATE TABLE AS) 语句中指定属性,例如Presto, AWS Athena, Cloudera,等等
然而,在阅读长查询时,我有好几次很难立即区分这两种用法,而且我一直在想,如果用另一个词来表示这两种用法是否更有意义,以提高可读性并避免歧义。
所以我的问题是:这两种用途是否有某种关联?它们是否源于某个共同的根源?
他们完全没有关系。 WITH
是一种类似于子查询的句法结构。另一个用于其他目的。
GROUP BY
和 ORDER BY
中的 BY
的类比。或者 AND
用于 BETWEEN
并作为独立的布尔运算符。他们只是碰巧有相同的名字。