Aprende Cómo Utilizar la Cláusula INTERSECT en los Procedures en Oracle

Si aprendes a usar la cláusula INTERSECT de la sentencia SELECT podrás adquirir una técnica que te permitirá analizar datos de forma más eficiente, ya que INTERSECT es una de las herramientas analíticas que entrega Oracle para el análisis de gran cantidad de datos.

La cláusula INTERSECT permite comparar los resultados de dos querys entregando como resultado las filas de la primera query que encuentran su homologo en la segunda query, es decir, entrega los registros de la primera query que también están en la segunda query. Esto es muy útil cuando necesitas comparar resultados de dos procesos diferentes que presentan datos duplicados o inconsistencias de algún tipo, como pueden ser de totales, datos desplegados, cantidad de registros mostrados, etc.

Revisemos un ejemplo para que entiendas mejor como se debe usar la cláusula INTERSECT.

Ejemplo #1: Supone que debes validar la consistencia entre dos procesos cuyas querys deben mostrar resultados diferentes pero por algún motivo en una de las querys están apareciendo filas que ya se muestran en la otra query, por lo tanto primero necesitas identificar cuáles son los registros que se repiten en ambas querys para empezar a analizar el problema, veamos cómo se debe resolver este problema:

1. Primer proceso que busca solo los empleados con estado civil soltero.

/* Procedures en Oracle */

Select rut from t_empleado where ind_estado_civil = 1; -– 1= soltero

Resultado de la consulta:

Rut

201

202

311

312

401

405

409

Esta consulta entrega todos los Rut de empleados que están con estado civil de soltero.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”  ¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

2. Segundo proceso que busca solo los empleados con estado civil casado.

/* Procedures en Oracle */

Select rut from t_empleado where ind_estado_civil = 2; -– 2= casado

Resultado de la consulta:

Rut

101

102

201

212

301

312

309

401

Esta consulta entrega todos los Rut de empleados que están con estado civil de casado.

A simple vista es fácil identificar los Rut que están repetidos en ambas consultas, pero cuando se trata de miles de registros necesitas una herramienta que te ayude a identificarlos de forma más rápida y eficiente. Veamos cómo se usa el INTERSECT para identificar los registros que están repetidos:

/* Procedures en Oracle */

Select rut from t_empleado where ind_estado_civil = 1 -– 1= soltero

Intersect

Select rut from t_empleado where ind_estado_civil = 2; -– 2= casado

Resultado de la consulta:

201

312

401

En esta consulta el INTERSECT detecta de inmediato los Rut de la primera query que también están en la segunda query. Para que el INTERSECT funcione las querys a comparar deben tener los campos seleccionados en el mismo orden y deben ser del mismo tipo.

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 Procedures en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con Packages 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 7 Pasos

Esta entrada fue publicada en Function en Oracle, Procedures en Oracle y etiquetada , , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s