SQL Server 2012 introdujo la nueva y poderosa función CHOOSE (). Esta receta tecnológica explorará su uso y errores comunes a través de algunos ejemplos simples.
La función ELEGIR () devuelve el elemento en un índice específico. El comportamiento es el mismo que la lista de elementos en la matriz y utiliza el índice de la matriz para obtener el elemento en el índice especificado.
Sintaxis
Sintaxis: ELEGIR (índice, val_1, val_2 [, val_n])
• Índice argumento acepta la expresión entera, y tiene que comenzar con el índice basado en 1.
• Val_1 a val_n lista de artículos.
Ejemplos
Ejemplo 1.1 - ELEGIR () con índice
SELECCIONE ELEGIR (0, 'tech', 'recetas', 'libro de recetas') COMO 'index_as_0' GO index_as_0 ---------- NULL
Esto muestra NULL porque CHOOSE () acepta argumentos de índice y debe comenzar con uno o un valor mayor que uno.
Ejemplo 1.2 - ELEGIR () con un valor de índice válido
SELECCIONE ELEGIR (1, 'tecnología', 'recetas', 'libro de recetas') COMO 'index_as_1' IR index_as_1 ---------- tecnología
Esto devuelve el elemento 'tech' como resultado de la lista de valores porque hemos pasado uno como argumento de índice.
Ejemplo 1.3 - ELEGIR () con un índice mayor que el número de elementos en la lista
SELECCIONE ELEGIR (4, 'tech', 'recetas', 'recetario') COMO 'index_as_4' GO index_as_4 ---------- NULL
Esto devuelve NULL porque estamos pasando el argumento de índice como cuatro, y no tenemos ningún elemento en la cuarta posición.
Ejemplo 1.4 - ELEGIR () con índice decimal
SELECCIONE ELEGIR (2.9, 'tech', 'recetas', 'libro de recetas') COMO 'decimal_index' GO decimal_index ------------- recipes
Esto no devuelve ningún error. Se muestra 'recetas' en el resultado. Cuando pasa el primer argumento como 2.9, convierte un valor decimal en un entero, trata el valor decimal 2.9 como 2 y muestra el elemento de 'recetas' como resultado.
Ejemplo 1.5 ELEGIR () con índice negativo
SELECCIONE ELEGIR (-2, 'tech', 'recetas', 'libro de recetas') COMO 'Negative_index' GO Negative_index -------------- NULL
Esto da como resultado NULL porque está pasando el primer argumento como un valor negativo que viola la sintaxis. Siempre asegúrese de pasar siempre el valor entero positivo.
Ejemplo 1.6 ELEGIR () con variable
DECLARAR @index AS INT = 3 SELECCIONE ELEGIR (@index, 'tech', 'recetas', 'cookbook') COMO 'Index_as_Variable' GO Index_as_Variable ----------------- cookbook
Hemos declarado una variable int @index con valor tres y hemos pasado la variable como valor de índice. Está mostrando 'libro de cocina' porque es el tercer ítem del índice en la lista.