1 0 Tag Archives: SQL
post icon

Como lograr Unpivot de múltiples columnas

Para hacer lo más sencilla posible la explicación de como lograr UNPIVOT con varias columnas usaremos un ejemplo simple con UNPIVOT de una sola columna primeramente. Imaginemos que tenemos una tabla de candidatos para un puesto y RRHH debe realizar las llamadas a los números de sus referencias personales y laborales para hacer las comprobaciones, la estructura sería la siguiente: (Continuar Leyendo sobre Como lograr Unpivot de múltiples columnas)

post icon

La función NULLIF en la Base de Datos

Practicamente todos los motores de base datos modernos soportan esta funcion, incluso con la misma sintaxis. Desde Sql Server 2005, Oracle 9i, MySQL 5.0, Firebird 1.5, PostgreSQL 8.0 y probablemente varios otros.

La función recibe dos parámetros, en caso que sean iguales los valores retorna NULL y en caso de ser diferencia retorna el primer valor recibido como parámetro. También hay que tener en cuanta que el tipo de dato devuelto siempre es igual al tipo del primer parámetro.

La sintaxis es como sigue: (Continuar Leyendo sobre La función NULLIF en la Base de Datos)

post icon

Crear Consultas SQL con filtros dinámicos de manera eficiente

Crear consultas SQL con filtros dinámicos siempre ha sido un tema controversial, especialmente en cuanto a que técnicas de implementación son mejores. Y es muy común utilizarlas en las áreas que se dedican al reporting.

Lo más común que se suele hacer es caer en el error de armar la query SQL de forma dinámica dentro de la aplicación, esto puede provocar fallos en la seguridad y problemas de rendimiento, otra forma común de implementar es con SQL Dinámico, que dependiendo de como se implementa también (Continuar Leyendo sobre Crear Consultas SQL con filtros dinámicos de manera eficiente)

post icon

Generar un rango de filas para usar como producto cartesiano o como conjuto de datos en SQL Server

Otra de las tantas interrogantes que todo programador de SQL suele hacerse, es como generar filas dinámicamente sin leer datos de tablas, para cruzarlo con otras tablas o vistas y así obtener un producto cartesiano o un conjunto de resultados para unirlos con otros conjuntos. La típica solución suele ser usar un bucle como un while o un cursor, para insertar datos en alguna variable tipo tabla o una tabla temporal los cuales presentan serios problemas de rendimiento. De hecho, haremos unas pruebas con un millón de filas creadas en discos distintos, el primer (Continuar Leyendo sobre Generar un rango de filas para usar como producto cartesiano o como conjuto de datos en SQL Server)

post icon

Concatenar filas en una sola fila con valores separados por comas con SQL

Constantemente me topo con personas del ambiente laboral o de foros que me preguntan como pueden pasar las filas que les retorna un select a una sola columna y fila separando los valores por comas, por eso hoy publico este post.

Para lograr esto existen muchas vías, unas más optimas o complejas que otras. No voy a exponer cada una de esas técnicas, pero si veremos una de las maneras más sencillas y eficientes hacerlo. (Continuar Leyendo sobre Concatenar filas en una sola fila con valores separados por comas con SQL)

post icon

Obtener un registro de la base de datos aleatoriamente mediante SQL

Si lo que necesitas es obtener una o un par de filas de tu base de datos de manera “randomica”  existen muchas soluciones que se pueden implementar, desde hacer un “select silvestre” y desde alguna aplicación que utilice algoritmos que permitan seleccionar un registro de manera aleatoria, hasta “cocinarlo” en desde la misma base de datos.

Dependiendo el contexto de trabajo es conveniente elegir una opción u otra. Pero ésta vez quiero centrarme más bien en hacer el trabajo desde la Base de Datos, con un Query SQL para los distintos (Continuar Leyendo sobre Obtener un registro de la base de datos aleatoriamente mediante SQL)

post icon

Como utilizar la cláusula OVER [Partition By / Order by] en SQL [Optimización]

Ver query’s con la cláusula OVER no es muy común, normalmente la mayoría de los programadores o DBA crean sub-query’s para obtener los mismos resultados, lo que en sí no es malo ya que logran visualizar los mismos datos. El problema principal se encuentra en el rendimiento que tiene uno y otro método.

El motor que sea que estés utilizando optimiza el tiempo de ejecución y los bloqueos de las filas cuando se escribe scripts con OVER ya que el mismo trabaja sobre los datos ya obtenidos, en vez de volver a recuperarlos de origen.

La cláusula OVER está definida en el estándar ISO de SQL, (Continuar Leyendo sobre Como utilizar la cláusula OVER [Partition By / Order by] en SQL [Optimización])

post icon

Insertar datos desde un csv a mysql con java

A continuacion veremos una forma sencilla, para insertar o actualizar los datos en una db mysql desde un archivo csv para ello necesitaremos una librería externa que pueden descargarla desde aqui:
http://oss.mars.asu.edu/trac/jmars/browser/trunk/lib/javacsv.jar?rev=1
Para esto supongamos que nuestro archivo csv este ordenado asi:

100,"Juan","Gonzalez",123454,"5ta avenida c/Artigas 1560","59521-345445";

Con este ejemplo nosotros insertamos y actualizamos los datos en la db por medio de procedimientos almacenados. El nombre de los sp pueden variar, y la logica es casi lo mismo para insertar o actualizar en otros motores de bases de datos.

(Continuar Leyendo sobre Insertar datos desde un csv a mysql con java)

post icon

Autocompletar el SQL en SQL Server Management Studio

Para los que usamos MS SQL como motor de base de datos y su IDE SQL Server Management Studio, especialmente en versiones 2005 para abajo nos quejamos de la falta de un IntelliSense o Autocompletado de SQL. En la versión 2008 en adelante si bien es cierto que apareció tampoco funciona en la sección triggers y tampoco si nos conectamos a versiones anteriores del motor.

Una de las soluciones que solía utilizar era cambiar de Entorno por EMS o Toad (Continuar Leyendo sobre Autocompletar el SQL en SQL Server Management Studio)

post icon

Eliminar filas duplicadas con SQL de una tabla

Es típico encontrarnos con casos en donde alguien se olvido de colocar una clave única en algún lugar y luego tenemos registros con columnas duplicadas — no me refiero precisamente a claves primarias pero también podría aplicar el caso — y necesitamos eliminarlos pero dejar siempre uno de cada valor único, no es muy compleja la lógica a utilizar pero es una pregunta muy frecuente de como realizar esta tarea.

Para comprender bien la operativa a realizar vamos a hacer un ejemplo muy sencillo, creamos una (Continuar Leyendo sobre Eliminar filas duplicadas con SQL de una tabla)

Página 1 de 3123