SQL Server 2012 Cómo usar la función lógica CHOOSE ()

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.