To nie jest błąd. Ponieważ nie zakwalifikowałeś kolumny, Oracle interpretuje ją jako bieżącą wartość kolumny z tabeli A — która mieści się w zakresie (por. korelacyjne zapytanie podrzędne). Tak więc podzapytanie generuje tylko tyle duplikatów tej wartości kolumny, ile jest wierszy w tabeli B.
in
na tej podstawie warunek stanie się prawdą lub fałszem. Zawsze będzie fałszywe, gdy tabela B będzie pusta. Będzie również fałszywe w przypadkach, gdy Col_A
nie ma wartości. Ale we wszystkich innych przypadkach będzie to prawda. Otrzymasz więc tyle wyników, ile jest wierszy w tabeli A, które nie mają wartości null w Col_A
, z wyjątkiem sytuacji, gdy tabela B jest pusta, w którym to przypadku nie otrzymujesz żadnych wyników.