1
2
不是真的循环,但我会解释:
因为这个它正在更新整个表。更新中没有where子句,因此无论发生什么,每一行都将被更新。我个人更喜欢这种形式的别名表,并使用更新对别名,因为当你有复杂的更新,它可以使查看变化更容易。 内部部分:
获取每年处理的订单之前的销售金额的总和,并等于该订单。它不是在代码中循环;它实际上是在每行或返回的数据上运行一个子查询。 |
2
1
update语句只是对当前orderNumber之前的所有行求和。 让我给你展示另一种方法:
CTE查询计算累计总计,第二个查询更新表。
DB<gt;小提琴 here |
3
1
解决问题的最佳方法是使用可更新的CTE:
这没有联接或关联的子查询。一般来说,窗口函数要比相关的子查询快得多。可更新的cte是sql server的一个非常好的特性,它将您从
|
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |