从邻居条目插入日期

时间:2011-12-11 04:23:06

标签: oracle

表格包含issue_datepart_numdate_received的列。

如果issue_datenull,我想选择issue_date part_num + 1(下一个部分编号),并将其插入issue_date列没有发行日期的部分。

part_num是顺序的。

什么sql语句会选择然后插入适当的发布日期?

提前感谢您的帮助。

用一点点自我加入声明想出来..如果你愿意,谢谢你删除!!

1 个答案:

答案 0 :(得分:2)

试试这个:

update t
set t.issue_date = (select issue_date 
                       from t t1 
                      where t1.part_num = t.part_num+1)
where t.issue_date is null

但是,如果下一个部件号也没有issue_date,这将在issue_date中进行ramain null。要解决此问题,您可以将查询更改为此问题(如果它适合您的应用程序):

update t
set t.issue_date = (select min(issue_date)
                       from t t1 
                      where t1.part_num > t.part_num)
where t.issue_date is null