2017-04-22 81 views
0

我和我的一个朋友打赌,看看我能否找到CTE为什么有共同词,而且我找不到任何有关该词的文章或任何内容。我明白这个问题是非常关键的问题,但它仍然可以让初学者程序员更多地了解SQL,同时我也会赢得一场赌注。非常感谢为什么Common Table Expression被称为“Common”?

+3

我想象因为你可以多次引用它而不需要重复定义。例如。 '用CTE AS(选择...)选择*从CTE C1加入CTE C2 ...' –

回答

2

我不确定这适合堆栈溢出,但这是一个有趣的问题。我很确定“常见”是指别名在查询中的任何位置都可用。把它看作是“碰巧是表的查询的常见表达式”。我可以想象为这个野兽讨论像“全球”和“本地”这样的词语,而“普通”是某种共识。

要理解这个想法,您需要了解子查询的表别名范围。这些限制在包含引用和子查询的查询的范围内。当然,CTE是在侧向连接之前引入的。那时,没有办法在连接中的不同子查询中共享“通用”表达式。

他们已经存在很长时间了。也许当时参与标准的人可以提供更多的背景知识。

+0

非常感谢。我在想同样的事情,但没有任何证据或任何其他来源支持我。 –