我必须修改某人所做的甲骨文选择......我需要理解......我认为这是一个糟糕的选择,但我不确定:
从 user01.myTable 完全外部联接 user01.myTable myTable_alias2
SELECT
myTable.field1 AS field1,
myTable.date_hour AS date_hour,
myTable.HOUR,
DECODE (
myTable.aux1, 'CAT', 'CAT3', myTable.aux1
) AS aux1,
myTable.sum_count,
myTable_alias2.sum_count AS sum_countx,
myTable.aux2,
myTable_alias2.aux2 AS aux2x
FROM user01.myTable FULL OUTER JOIN user01.myTable myTable_alias2
ON (myTable.field1 = myTable_alias2.field1
AND myTable.HOUR = myTable_alias2.HOUR
AND myTable.aux1 = myTable_alias2.aux1
AND TO_CHAR (TO_DATE (myTable.date_hour, 'YYYYMMDD') - 7,'YYYYMMDD') = myTable_alias2.date_hour
)
我的系统中有一个user01.myTable,但在我的系统中没有myTable_alias2。如果我用 myTable_aliasXXX 替换所有 myTable_alias2 ,则选择可以正常工作!
我不明白,我认为 myTable_alias2 就像 user01.myTable 的副本,但如果是正确的,我可以这样写:
SELECT
myTable.field1 AS field1,
myTable.date_hour AS date_hour,
myTable.HOUR,
DECODE (myTable.aux1, 'CAT01L0', 'CAT01L03', myTable.aux1) AS aux1,
myTable.sum_count,
myTable.aux2
FROM user01.myTable
在我错了什么?我不明白什么?是一个特别的完全外连接还是一个简单的错误?非常感谢您的宝贵时间!