问题描述
大家好,我从查询中得到奇怪的结果。
我有一个按id分区的表列表,当我执行这个:
它返回值 “A1”。然后我执行以下操作 (请记住,partName是id = 100的分区名称):
它返回 “B1”
分区partName中的正确值是B1,如果I
您是否知道使用分区表的MAX函数上的任何错误可能导致这种情况?
谢谢!
我有一个按id分区的表列表,当我执行这个:
select max(col1) from table where id=100;
它返回值 “A1”。然后我执行以下操作 (请记住,partName是id = 100的分区名称):
select max(col1) from table (partName);
它返回 “B1”
分区partName中的正确值是B1,如果I
select id from table where col1='A1'它返回正确的值 (500)。
您是否知道使用分区表的MAX函数上的任何错误可能导致这种情况?
谢谢!
专家解答
我无法重现此内容或找到任何明显相关的错误:
如果您希望我们进一步研究,我们需要一个完整的测试用例:
-创建表格
-插入
-选择
create table t ( c1 int, c2 int ) partition by list ( c1 ) ( partition p1 values ( 1 ), partition p2 values ( 2 ), partition p3 values ( 3 ), partition p4 values ( 4 ) ); insert into t with rws as ( select mod ( level, 4 ) + 1, level x from dual connect by level <= 10 ) select * from rws; select max ( c2 ) from t where c1 = 1; MAX(C2) 8 select max ( c2 ) from t partition ( p1 ); MAX(C2) 8
如果您希望我们进一步研究,我们需要一个完整的测试用例:
-创建表格
-插入
-选择
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。