在SQL中是否可以在同一查询的另一个CTE内的Common Table Expression内使用引用?这里有一个例子:
WITH CT1 AS (SELECT * FROM T), CT2 AS (SELECT * FROM CT1) SELECT * FROM CT2;
我在SQLite3中尝试了此方法,并且它起作用了,我只是想知道它是否是标准SQL的一部分。关于此论点的任何建议将不胜感激。非常感谢你!
这是CTE的三个重要属性:
您可以在后续的CTE中或查询的主体中引用CTE。
您可以多次引用任何给定的CTE。
CTE可以from在其他子查询中任何嵌套级别的子句中使用。
from
与使用SQL中的所有内容一样,需要定义CTE,然后再使用它们。因此,您不能以随机顺序定义它们。
这是CTE的标准定义,并且很好地解释了如何在数据库中使用它们。这三个属性是它们与子查询不同的关键方式。