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.