miércoles, 8 de febrero de 2012

Nueva funcion CHOOSE en SQL 2012

En esta oportunidad veremos la función CHOOSE es una de las novedades de SQL 2012. Nos permite pasar un número (primer parámetro) y seleccionar un valor en base a éste.
Este mismo funcionamiento lo podíamos obtener con una tabla de códigos con la cual hacer el INNER JOIN, pero de esta forma podemos hacerlo mas simple. Veamos un ejemplo.

-- =============================================
-- Create:        Andrés Aiello
-- Create date: 18/01/12
-- Description: Nueva funcion CHOOSE en SQL 2012
-- =============================================

-- Primero creamos una tabla con valores de ejemplo para poder probar la funcion
CREATE TABLE #PruebaCHOOSE(
id INT PRIMARY KEY, codigo INT
)

INSERT INTO #PruebaCHOOSE VALUES
(1, -2),
(2, 3),
(3, 2),
(4, 1),
(5, 5),
(6, 2),
(7, 1)

-- Utilizamos el campo codigo para seleccionar una de las tres posibles descripciones
SELECT id, CHOOSE(codigo, 'CODIGO1', 'CODIGO2', 'CODIGO3')
FROM #PruebaCHOOSE

DROP TABLE #PruebaCHOOSE

Como podemos ver en el ejemplo el uso es muy simple, y en caso de que el índice no se encuentre entre 1 y la cantidad de opciones retorna null.
Esta función requiere siempre que como mínimo se le pasen dos parámetros, el primero el del índice y el segundo un código (al menos uno).

Pro
Muy simple de utilizar y muy clara
Contra
Va contra la normalización
No genera error de fuera de índice. Esto es muy personal pero me parece que es para problemas que no genere una excepción cuando el valor ingresado no corresponde a una de las opciones


No hay comentarios:

Publicar un comentario