[SQL Server 2005/2008]递归更新update(使用CTE公用表达式)
来源:互联网 发布:上古5ece捏脸数据1.4 编辑:程序博客网 时间:2024/05/01 08:19
-- 应用举例, t_user_sells中有每个用户每天的销售量, 现在需要得到每个用户每天的销量增长率。即:(当天销售量-昨日销售量)/昨日售销量* 100%
with Updaterecursive(startdate, userid, dealmoney, risepercent, rownumber)
as
(
select startdate, userid, dealmoney, risepercent,
row_number() over(partition by userid order by startdate asc) as rownumber
from t_user_sells
)
update t set t.risepercent = (t. dealmoney - s. dealmoney) * 100.00 / s.dealmoney
from Updaterecursive t left join Updaterecursive s
on (t.userid = s.userid and t.rownumber = s.rownumber + 1)
where t.rownumber > 1;
(CTE相对于普通SQL语句来说还是很耗内存的,测试了一下: 在奔4台式机上更新40万行记录,只需10秒)
- [SQL Server 2005/2008]递归更新update(使用CTE公用表达式)
- [SQL Server 2005/2008]删除重复行(使用CTE公用表达式)
- SQL Server 2005中使用公用表表达式的递归查询(CTE是个好东西)
- SQL SERVER 2005 公用表表达式(CTE)处理递归(父子关系)
- Sql Server 2005+中用公用表表达式(CTE)实现递归查询
- CTE公用表达式实现递归查询
- SQL SERVER 递归 CTE
- Sql Server 使用CTE实现递归查询
- CTE使用[SQL server 2005]
- SQL Server 2008中的CTE递归查询
- SQL Server 2008中的CTE递归查询
- SQL Server 2008中的CTE递归查询
- SQL SERVER CTE递归算法
- 使用公用表表达式(CTE)简化嵌套SQL 和进行递归调用
- 使用公用表表达式(CTE)简化嵌套SQL 和进行递归调用
- [MSSQL]SQL 关于使用CTE(公用表表达式)的递归查询
- SQL Server-- 使用WITH AS提高性能-CTE(使用公用表表达式)
- Sql Server 使用CTE实现递归查询(抄)
- 端口被占用
- 刚开通CSDN
- JavaScript解码url中的中文字符的方法
- 初学日记-java单例类
- 大数乘除(hdoj1023)
- [SQL Server 2005/2008]递归更新update(使用CTE公用表达式)
- 方法参数列表长度不定情况
- C#编程中的66个好习惯,你有多少个
- 让CPU占用率听你指挥
- 初学日记2-事件
- c++boost组件简介:数据结构,容器,迭代器和算法
- shell实例(十四) ----set,export,getopts命令
- 看驴生豪迈
- Solaris 10以太网卡设置