|
|
1
22
在以下情况下,通常应在普通子查询上使用CTE:
简言之,是的,它们确实使查询在使用得当时更具可读性。 |
|
|
2
18
就我个人而言,一旦我习惯了使用它们,我认为它们会产生更干净、更可读的代码。例如,将你的答案与我的答案进行比较 #4018793 . 我们基本上做了同样的事情;我用了CTE,而你没有。 无CTE的回答:
我对CTE的回答是:
|
|
|
3
3
它们是句法上的糖分,除了层次/递归查询。 然而,并不是所有可以递归地完成的事情都应该是——通过递归CTE生成日期几乎没有比光标更好——数字表技巧缩放得更好。 |
|
|
4
2
CTE在递归场景中生成更快的结果。CTE的结果反复用于获取最终结果集。因此,既然您已经在CTE中使用了WHERE子句或子查询,那么它肯定会显示性能的改进。
请注意,在许多情况下,临时表比CTE的性能更好,因此您也应该尝试使用临时表。
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |