首先,创建了一张临时表RP_TEST,然后用视图往这张表里插入数据,但是得出的结果和走视图出来的结果不一样。也就是是说,第2行和第5行的结果不一致,不知道那位清楚这个的原因,实在是太奇怪了。
1 insert into  rp_test 
2 select * from DWH_V_LOGISTIC_IN_OUT_B t  where  t.月 = '2010年06月' and t.经销部 = '北京经销部';
3 --drop table rp_test;
4 --delete from DWH_APP_LOGISTIC_IN_OUT_B t  where  t.月 = '2010年06月' and t.经销部 = '北京经销部';
5 select * from rp_test;
PS:rp_test肯定是空的,第2行每次select出来的结果都是一样的,不会变化,但是插入到rp_test后就会变化。

解决方案 »

  1.   

    order by 控制一下嘛 
      

  2.   

    你是不是这样建的表create global temporary table rp_test?
    查询这种临时表的数据肯定是空的,你把“global temporary "去掉就不会了。
      

  3.   

    回luoyoumou:
    这个和ORDER BY没什么关系,第2行的select语句出来只有4条,问题是插入到rp_test后,这4条语句中的数据会发生变化。
    PS:这里和ORDER BY有关系么
      

  4.   

    没有,直接create table来创建的,担心临时表出问题,所以直接创建的中间表,这张表每次数据都会被清理掉。
    PS:目前补充一点,如果我把where后面的条件去掉后,每次插入的数据不会变化,但是加上where语句,数据就会乱跳。第一次遇到这么奇怪的问题,无解啦......
      

  5.   

    我看到你的表名,似乎是数据仓库中的一个表,不知道数据量是不是很大,更新是不是很频繁,你把这些语句放在一个事务中,在可重复读的状态下试试看,或者强行lock table再看看,光看语句不觉得有什么问题。。