![]() |
1
2
不是真的循环,但我会解释:
因为这个它正在更新整个表。更新中没有where子句,因此无论发生什么,每一行都将被更新。我个人更喜欢这种形式的别名表,并使用更新对别名,因为当你有复杂的更新,它可以使查看变化更容易。 内部部分:
获取每年处理的订单之前的销售金额的总和,并等于该订单。它不是在代码中循环;它实际上是在每行或返回的数据上运行一个子查询。 |
![]() |
2
1
update语句只是对当前orderNumber之前的所有行求和。 让我给你展示另一种方法:
CTE查询计算累计总计,第二个查询更新表。
DB<gt;小提琴 here |
![]() |
3
1
解决问题的最佳方法是使用可更新的CTE:
这没有联接或关联的子查询。一般来说,窗口函数要比相关的子查询快得多。可更新的cte是sql server的一个非常好的特性,它将您从
|
|
Johnny T · 基于当前值的SQL合并表[重复] 4 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 5 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 5 月前 |
![]() |
Sax · 规范化Google表格(第一步) 5 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 5 月前 |