sql >> Base de Datos >  >> RDS >> Oracle

La diversión de la subconsulta de Oracle

No es un error. Como no calificó la columna, Oracle la interpreta como el valor de la columna actual de la tabla A, que está dentro del alcance (cf. una subconsulta correlativa). Entonces, la subconsulta solo produce tantos duplicados del valor de esa columna como filas hay en la tabla B.

El in la condición se volverá verdadera o falsa en función de eso. Siempre será falso cuando la tabla B esté vacía. También será falso en los casos en que Col_A es nulo. Pero en todos los demás casos será cierto. Por lo tanto, obtendrá tantos resultados como filas en la tabla A que tengan un valor no nulo en Col_A , excepto cuando la tabla B está vacía, en cuyo caso no obtiene resultados.