Ini bukan bug. Karena Anda tidak memenuhi syarat kolom, Oracle menafsirkannya sebagai nilai kolom saat ini dari tabel A -- yang berada dalam cakupan (lih. sub kueri korelatif). Jadi subquery hanya menghasilkan duplikat nilai kolom itu sebanyak baris dalam tabel B.
in
kondisi akan menjadi benar atau salah berdasarkan itu. Itu akan selalu salah ketika tabel B kosong. Ini juga akan salah jika Col_A
adalah nol. Tetapi dalam semua kasus lain itu akan benar. Jadi, Anda akan mendapatkan hasil sebanyak baris dalam tabel A yang memiliki nilai bukan nol di Col_A
, kecuali jika tabel B kosong, dalam hal ini Anda tidak mendapatkan hasil.