select * from table partition (partition1);现在我要取得partition1和partition2,partition3的数据该怎么写?

解决方案 »

  1.   

    select * from table partition (partition1)
    union all
    select * from table partition (partition2)
    union all
    select * from table partition (partition3)
      

  2.   

    不会吧大哥,没有好点的办法啊?这样排序很麻烦的诶?
    oracle真的就这么脆弱吗?
      

  3.   

    当然也不是说太麻烦,但是如果有简单当然是最好的了。没有更直接的方法了吗?
    是不是partition只能用一个啊?
    如果是这样我就老老实实去做union了,请大虾指教!
      

  4.   

    如果是range或者是list分区,可以在where条件中指定。partition()肯定只能用一个
      

  5.   

    我现在就是PARTITION BY RANGE (fieldname)但是我不知道条件该怎么写,前辈指点一下,给个小例子,我在线,完了就结贴了,谢谢了!
      

  6.   

    你的 PARTITION  是按照什么条件分的? 在 where 条件中指定这个条件不就可以了吗?
    例子:分区字段 ID
    ID<10 : partition1 ,ID<20 : partition2 ,ID<30 : partition3,ID<40 : partition4
    如果要去 partition2 ,partition3 上的数据:
    select *from table1 where id>=10 and id<30 ;
      

  7.   

    to 回复人: wxdsun(影子) 如果这样写,那感觉不就是没有用上partition吗?
    应该是检索的时候用上partition才能体现出partition的作用吧,否则就不需要partition了啊
      

  8.   

    to amortal:   你的感觉是错误的。用partition和用分区字段where条件作用是一样的。
      

  9.   

    那就是说partition只是相对的定义了一组条件?那这样说来,如果我要直接取多个partition的数据的时候就不用考虑什么partition了,直接写条件,就可以了,这样应该要比用partition加上union的方法好吧?