如何写语句?

OpenVMS 2007-01-30 04:42:00
我有三万多条记录,有日期子段,要求计算每条的记录与上次最近时间的时间间隔
...全文
175 点赞 收藏 6
写回复
6 条回复
zgh2003 2007年01月30日
不是让你用循环做,是建议你采用中间变量,这样可以把一个复杂的语句拆分为两个简单的语句来实现.
回复 点赞
OpenVMS 2007年01月30日
晕,3w条记录用循环做啊?
回复 点赞
zgh2003 2007年01月30日
建议采用楼上的方法
回复 点赞
flyoutsea 2007年01月30日
把这个语句拆成两份吧,否则每处理一条记录都要执行select min(p_date) from tx where p_date>t.p_date一次,这样肯定是慢的,

select min(p_date) from tx where p_date>t.p_date
将得到的变量存在min_p_date里面,再执行

update tx t
set interval=min_p_date-p_date*24*60
回复 点赞
OpenVMS 2007年01月30日
UPdate就没有反应了

不能用自增长

update tx t
set interval=(select min(p_date) from tx where p_date>t.p_date)-p_date)*24*60

回复 点赞
OpenVMS 2007年01月30日
查询要13秒,要求更新,如何做
回复 点赞
发动态
发帖子
基础和管理
创建于2007-09-28

7175

社区成员

9.5w+

社区内容

Oracle 基础和管理
社区公告
暂无公告