【发布时间】:2012-03-14 16:53:38
【问题描述】:
我必须修改某人所做的 oracle 选择...我需要了解...我认为这是一个错误的选择,但我不确定:
FROM 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
我做错了什么?我不明白什么?是一个特殊的完全外连接还是一个简单的错误? 非常感谢您的宝贵时间!
【问题讨论】:
标签: oracle select full-outer-join