oracle中两列的range分区如何跨范围查询
分区表按年度+月份范围range分区,语句如下:建表语句有valueslessthan...等方式,如何在查询中也使用这种方式呢现在有一个需求:找一种最最高效的方式查询2...
分区表按年度+月份 范围range分区,语句如下:
建表语句有values less than...等方式,如何在查询中也使用这种方式呢
现在有一个需求:找一种最最高效的方式查询 2010年5月 至 2012年8月的全部数据
这个sql语句十分别扭,使用很多个union all并在一起的
有没有一种方式直接查出指定一些分区的数据呢
比如: where (kjnd, kjqj)>=('2010', '05') and (kjnd, kjqj)<=('2012', '08'), 就想要实现这种方式的查询
就是实现两个字段同时比较大小,当第一个字段能够比较出大小,就比较第一个字段,否则(比如相等)就比较第二个字段
因为我想到建立分区时候语句如上图所示,所以我想,两个字段的范围分区,也应该有两个字段的范围查询吧,创建分区的时候,有一个values,这个values究竟是多少,如何用于查询比较呢,
或者说如何从指定分区开始,到一个指定分区为止,把这些范围的数据全部扫描出来,有这种方式吗 展开
建表语句有values less than...等方式,如何在查询中也使用这种方式呢
现在有一个需求:找一种最最高效的方式查询 2010年5月 至 2012年8月的全部数据
这个sql语句十分别扭,使用很多个union all并在一起的
有没有一种方式直接查出指定一些分区的数据呢
比如: where (kjnd, kjqj)>=('2010', '05') and (kjnd, kjqj)<=('2012', '08'), 就想要实现这种方式的查询
就是实现两个字段同时比较大小,当第一个字段能够比较出大小,就比较第一个字段,否则(比如相等)就比较第二个字段
因为我想到建立分区时候语句如上图所示,所以我想,两个字段的范围分区,也应该有两个字段的范围查询吧,创建分区的时候,有一个values,这个values究竟是多少,如何用于查询比较呢,
或者说如何从指定分区开始,到一个指定分区为止,把这些范围的数据全部扫描出来,有这种方式吗 展开
2个回答
展开全部
你确定 这样的where 条件可用么?
SQL> select * from test;
ID N1 N2
---------- ---------- ----------
1 2 3
1 2 3
2 3 4
3 4 5
SQL> select * from test where (n1,n2)>=(3,4);
select * from test where (n1,n2)>=(3,4)
*
第 1 行出现错误:
ORA-01796: 此运算符不能与列表一起使用
SQL> select * from test;
ID N1 N2
---------- ---------- ----------
1 2 3
1 2 3
2 3 4
3 4 5
SQL> select * from test where (n1,n2)>=(3,4);
select * from test where (n1,n2)>=(3,4)
*
第 1 行出现错误:
ORA-01796: 此运算符不能与列表一起使用
追问
当然不可用了,我想实现这样的查询效果,range分区,定义的时候本身就有这种方式,values less than 所以我想,这种定义方式能不能用于查询,有一种方式来这样查询范围分区吗,或者说指定一个分区开始,如:P_1001_200901,查询50个分区,有这种方式吗
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询