sql >> Databasteknik >  >> RDS >> Oracle

Oracle subquery rolighet

Det är inte en bugg. Eftersom du inte kvalificerade kolumnen tolkar Oracle den som det aktuella kolumnvärdet från tabell A -- vilket är inom räckvidden (jfr en korrelativ underfråga). Så underfrågan producerar bara lika många dubbletter av det kolumnvärdet som det finns rader i tabell B.

in villkoret blir antingen sant eller falskt baserat på det. Det kommer alltid att vara falskt när tabell B är tom. Det kommer också att vara falskt i fall där Col_A är inget. Men i alla andra fall kommer det att vara sant. Så du får lika många resultat som det finns rader i tabell A som har ett icke-nullvärde i Col_A , förutom när tabell B är tom, i så fall får du inga resultat.




  1. MySQL:Alternativ till ORDER BY RAND()

  2. Datum och tid Lokaler tillgängliga i MariaDB

  3. 15 Användbara MySQL/MariaDB-prestandajusteringar och optimeringstips

  4. Kan inte ansluta till localhost, men kan med datornamn i SQL Server 2008