sql >> Databáze >  >> RDS >> Oracle

Zábavnost poddotazu Oracle

Není to chyba. Protože jste sloupec nekvalifikovali, Oracle jej interpretuje jako aktuální hodnotu sloupce z tabulky A -- která je v rozsahu (srov. korelativní dílčí dotaz). Poddotaz tedy vytvoří tolik duplikátů hodnoty sloupce, kolik je řádků v tabulce B.

in podmínka se na základě toho stane buď pravdivou, nebo nepravdivou. Pokud je tabulka B prázdná, bude vždy nepravda. Bude také nepravda v případech, kdy Col_A je nulový. Ale ve všech ostatních případech to bude pravda. Získáte tedy tolik výsledků, kolik je řádků v tabulce A, které mají nenulovou hodnotu v Col_A , kromě případů, kdy je tabulka B prázdná, v takovém případě nezískáte žádné výsledky.




  1. Jak nainstalovat MariaDB 10 na RHEL 8

  2. „O“ v ORDBMS:PostgreSQL Inheritance

  3. Výpočet procent pomocí dotazu GROUP BY

  4. Resetujte sekvenci v oracle 11g