我有以下观点:
CREATE OR REPLACE VIEW FRM_STATAGGREGATE_VIEW AS
SELECT a.id aggregate_id,
SUM(S.PROD_TIME) PROD_TIME1,
SUM(S.PROD_TIME) PROD_TIME2
FROM wms_aggregate a
LEFT JOIN wms_stat_user s
ON a.id = s.aggregate_id
GROUP BY a.id;
我有以下问题:
SELECT prod_time1, NULL
FROM FRM_StatAggregate_VIEW
WHERE aggregate_id = 183
UNION ALL
SELECT prod_time1, prod_time2
FROM FRM_StatAggregate_VIEW
WHERE aggregate_id = 183;
查询产生以下结果:
PROD_TIME1 PROD_TIME2
60 <NULL>
0 0
换句话说,当我在查询中包含两个列时,它们返回值0,但是当只包含一个时,返回值(60)是正确的。
当我克隆视图中使用的表并重新创建视图时,结果是正确的。
我的问题是:这是一个Oracle错误吗?或者由于任何数据库/表/视图配置,索引等,这些结果是否可能?