Det er ikke en fejl. Da du ikke kvalificerede kolonnen, fortolker Oracle den som den aktuelle kolonneværdi fra tabel A -- som er inden for omfanget (jf. en korrelativ underforespørgsel). Så underforespørgslen producerer lige så mange dubletter af den kolonneværdi, som der er rækker i tabel B.
in
tilstand vil enten blive sand eller falsk baseret på det. Det vil altid være falsk, når tabel B er tom. Det vil også være falsk i tilfælde, hvor Col_A
er nul. Men i alle andre tilfælde vil det være sandt. Så du får lige så mange resultater, som der er rækker i tabel A, der har en ikke-nul værdi i Col_A
, undtagen når tabel B er tom, i hvilket tilfælde du ikke får nogen resultater.