任何人都可以解釋爲什麼以下查詢返回兩行而不是一行?可能帶有子查詢和組函數的Oracle-Bug
SELECT *
FROM (SELECT 'ASDF' c1, MAX (SUM (1)) c2
FROM DUAL
GROUP BY dummy
UNION
SELECT 'JKLÖ' c1, 1 c2
FROM DUAL)
WHERE c1 != 'ASDF';
--another Version with the same wrong result:
SELECT *
FROM (SELECT 1 c1, MAX (SUM (1)) c2
FROM DUAL
GROUP BY dummy
UNION all
SELECT 2 c1, 1 c2
FROM DUAL)
WHERE c1 != 1;
Oracle提供兩行是否正確?在我看來,c1 = ASDF的行不應該在結果中。
這是第一個查詢結果的截圖:
我已經測試了以下版本,總是以相同的結果:
- Oracle數據庫11g企業版本11.2.0.3.0 - 64位生產
- Oracle Database 12c企業版版本12.1.0.2.0 - 64位生產
您能否包含結果集? –
不通過啞元組造成語法錯誤? –
包含結果集的屏幕截圖。不,沒有語法錯誤 - 我在真正的表格中也遇到了問題,我只是儘可能使樣本變得簡單和小巧。 –