Uso de SubConsultas en SQL Server (SubQueries)

Subconsultas o SubQueries en SQL Server

Muchas veces no vemos en la necesidad de Realizar una consulta de datos dentro de otra consulta ya creada, a lo que se le llama SubConsultas ó SubQueries. Pondré algunos ejemplos del uso de subconsultas a continuación.

SubConsulta sencilla para traer la descripción de puesto de un empleado:


Digamos que una consulta sobre la tabla empleados nos devuelve los siquientes resultados:

SELECT * 
FROM EMPLEADOS

Subconsultas o SubQueries SQL SERVER 1

Y también tenemos la tabla Puestos, la cuál contiene los siguientes Valores.

SELECT *
FROM PUESTOS

subqueries SQL SERVER

Ahora, digamos que cuando consultemos la tabla de empleados queremos que nos aparezca la descripción del puesto, obviamente esto lo podemos hacer relacionando la tabla de empleados con la tabla puestos por el campo id_puesto pero en este ejemplo estamos tratando de demostrar el uso de las subconsultas en sql server, entonces quedaría de esta forma:

SELECT EMP.ID_EMPLEADO, EMP.NOMBRE, EMP.FECHA_INGRESO, 
(SELECT P.DESCRIPCION 
                  FROM PUESTOS P 
                 WHERE P.ID_PUESTO = EMP.ID_PUESTO) AS DESCRIPCION_PUESTO
FROM EMPLEADOS AS EMP

El resultado es el siguiente:

EJEMPLO de SubConsultas en SQL SERVER


Uso de Subconsultas como Tablas Temporales

Algunas veces es recomendable utilizar subconsultas para evitar crear tablas temporales, es decir que el resultado de una consulta lo podemos como si fuera un tabla temporal, ejemplo:

Vamos a utilizar el query creado en el ejemplo anterior como si fuera una tabla temporal:

SELECT *
FROM (
SELECT EMP.ID_EMPLEADO, EMP.NOMBRE, EMP.FECHA_INGRESO, 
(SELECT P.DESCRIPCION 
                  FROM PUESTOS P 
                 WHERE P.ID_PUESTO = EMP.ID_PUESTO) AS DESCRIPCION_PUESTO
FROM EMPLEADOS AS EMP) AS TABLA_TEMPORAL

solo pusimos todo el query anterior dentro de parentesis () y al final un alias que es como se llamará la supuesta tabla temporal.

Mis Mejores Saludos
Xavier García


No hay comentarios:

Publicar un comentario