使用PARTITION BY,插入时订单搞乱了。为什么?

时间:2015-01-22 20:33:55

标签: oracle oracle10g

我想在他们开始分配时按顺序订购员工,以便结果如下:

enter image description here

所以我使用的查询类似于:

SELECT a.employeename, b.assignmenttime, ROW_NUMBER() OVER (PARTITION BY a.employeename order by b.assignmenttime) sequence
FROM  emplyee a, tasks b  
WHERE a.id = b.id
ORDER BY a.employeename, b.assignmenttime

这是在一个过程中,每次调用过程时我都希望将结果写入表中。 所以我有:

INSERT INTO MyTable (Emp,Time,Sequence)
SELECT a.employeename, b.assignmenttime, ROW_NUMBER() OVER (PARTITION BY a.employeename order by b.assignmenttime) sequence
FROM  emplyee a, tasks b  
WHERE a.id = b.id
ORDER BY a.employeename, b.assignmenttime;
commit;

这一切都很好,除非将记录写入表格时,订单有时会搞砸,我最终会

enter image description here

正如您所看到的那样,顺序不合适。普通查询总是以正确的顺序返回记录,但为什么当我调用该过程时,记录会在表中按顺序写入?我该怎么做才能解决这个问题?使用oracle 10g

0 个答案:

没有答案