Saltar al contenido

Aprende a Crear Subquerys en Tus SELECT en PL-SQL Procedures en Oracle

PL-SQL Procedures en OracleSi aprendes a crear una Subquery (sub-consulta o sub-búsqueda en español) en tus Select o Consultas en Oracle podrás resolver rápidamente los problemas que encuentres en tus datos cuando trates de obtenerlos y no logres traer la información que deseas para que sea procesada en tus PL-SQL Procedures en Oracle.

Una Subquery básicamente es otra consulta Select pero que se encuentra anidada dentro de un Select principal en tus PL-SQL Procedures en Oracle. Esta Subquery puede ir a nivel de los campos de un Select en tus PL-SQL Procedures en Oracle, se puede especificar como una tabla dentro del From y también se puede incluir dentro de las condiciones del Where en tus PL-SQL Procedures en Oracle. Revisemos algunos ejemplos para que entiendas mejor el uso de una Subquery en tus consultas Select en tus PL-SQL Procedures en Oracle.

Ejemplo #1: Supone que debes mostrar cuantos empleados tiene cada departamento, veamos como se hace con una subquery:

/* PL-SQL Procedures en Oracle */

Select

Dep.codigo_dep,

Dep.nombre_dep,

(select count(1) from t_emplado emp where emp.id_departamento = dep.id_departamento) cant_empleados

From t_departamento dep;

En este ejemplo se crea una Subquery para obtener la cantidad de empleados que tiene cada departamento, fíjate que en los PL-SQL Procedures en Oracle debe estar encerrada entre paréntesis y contener un nombre al final (cant_empleados).

Ejemplo #2: Resolvamos el mismo ejemplo anterior pero usando una subquery en el From, vemos como se hace:

/* PL-SQL Procedures en Oracle */

Select

Dep.codigo_dep,

Dep.nombre_dep,

Cant_emp.cant_empleados

From t_departamento dep,

(     Select emp.id_departamento, count(1) cant_empleados

From t_empleado emp

Group by emp.id_departamento ) cant_emp

Where dep.id_departamento = cant_emp.id_departamento;

En este ejemplo de PL-SQL Procedures en Oracle se crea una subquery en el From como otra tabla para contar los empleados por cada departamento con el nombre Cant_Emp y luego en el Where se une la tabla t_departamento con la subquery cant_emp.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Ejemplo #3: Supone que debes mostrar todos los empleados de un departamento en particular, veamos como se hace usando una subquery:

/* PL-SQL Procedures en Oracle */

Select

Emp.codigo_emp,

Emp.nombre_emp,

Emp.edad,

Emp.direccion_emp

From t_empleado emp

Where emp.id_departamento = (      Select dep.id_departamento

From t_departamento dep

Where dep.codigo_dep = pin_codigo_dep )

En este ejemplo de PL-SQL Procedures en Oracle se esta usando una subquery dentro del Where para buscar el id del departamento en la tabla t_departamento y luego este id se une con el id_departamento de la tabla t_empleado.

Te propongo que pruebes de inmediato este ejemplo en tu Base de Datos con tus propias tablas, PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL-SQL Procedures en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Procedures en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos

6 comentarios en «Aprende a Crear Subquerys en Tus SELECT en PL-SQL Procedures en Oracle»

    1. Hola Hugo, gracias por comunicarte y por tu comentario, lo mas recomendable es usar el ejemplo2 ya que todos los datos se obtienen de una sola vez, en cambio con el ejemplo1 se hace un select por cada fila que obtenga la query principal y al ser una gran cantidad de filas el rendimiento se vería afectado, recomiendo que el ejemplo1 solo se use en casos excepcionales, gracias.

      PD: Ya obtuviste mi Libro-Reporte gratuito sobre “Como Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes puedes obtenerlo gratis desde aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  1. Me parece muy interesante tu articulo, yo estoy haciendo una aplicacion en donde se obtengan los valores de la cantidad de alumnos por cada profesor, lo que no entiendo es de donde sacas este valor?
    pin_codigo_dep en el segundo ejemplo. Espero me puedas ayudar

    1. Hola Lacsanch, gracias por comunicarte y por tu comentario, te explico, lo que ocurre es que yo asumo que el select esta dentro de un procedimiento o una función y la palabra pin_codigo_dep es una variable que llega como un parámetro al proceso con el codigo del departamento, esta variable puede ser cambiada por cualquier valor dependiendo del caso, gracias.

      PD: Ya obtuviste mi libro-reporte gratuito sobre “Como Contruir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aun no lo tienes puedes obtenerlo desde el siguiente enlace:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Leonardo, gracias por comunicarte, lo mas eficiente es usar un subquery dentro del from o en el where solo si es realmente necesario, lo menos conveniente es usarlo en el select ya que el costo de la consulta es muy alto, gracias.

      PD: Si te ha gustado lo que has visto del blog te invito a compartir el enlace https://dominatuspackagesen0racle.com/ con tus amigos o personas que también les pueda interesar ver esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.