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