回答

收藏

一个SQL如何选择多个分区?

技术问答 技术问答 208 人阅读 | 0 人回复 | 2023-09-14

有没有比以下更有效的方法:! M1 i7 d& n1 K  E# ~% T
select * from transactions partition( partition1 )
, P$ F) z$ r2 d% vunion all
) H! b( P/ k0 i# P- k# j% \select * from transactions partition( partition2 ) 9 s" e- |6 c1 f0 T+ F
union all 6 S; S8 `% X% z  z4 W
select * from transactions partition( partition3 );
  i( y6 N' s% q9 M. g                : i" L5 x/ h( y, T1 D6 w. I
解决方案:1 z3 z* H# \3 V9 {- D
                " d6 S, Q# Q5 I7 S2 A* V7 i

4 I% |8 u7 H* B
, t$ M! J  i. R; U! H% {                在查询中使用PARTITION(partitionN)语法应该非常少见。
  A6 u. u$ ?2 {( F通常,您只想为分区键指定值,并允许Oracle执行分区消除。例如,如果您的表每天根据TRANSACTION_DATE进行分区
" D2 g! I% R5 x2 Z/ K" [8 ISELECT *9 D6 {* Q" T- K/ q6 E% Y5 {$ `1 i
  FROM transactions
3 v/ k& U8 S: V7 M  D9 d! I9 E WHERE transaction_date IN (date '2010-11-22',
5 H& \( l9 F& |# O* H                            date '2010-11-23',
% Z3 p; O: o% f6 r! @9 M                            date '2010-11-24')8 U; A5 d# L6 F$ F  p
将从今天的分区,昨天的分区和前一天的分区中选择所有数据。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则