SQL Server 2012 Comment utiliser la fonction logique CHOOSE ()

SQL Server 2012 a introduit la nouvelle fonction puissante CHOOSE (). Cette recette technique explorera son utilisation et ses erreurs communes à travers quelques exemples simples.

La fonction CHOOSE () renvoie l'élément à un index spécifié. Le comportement est identique à la liste des éléments du tableau et utilise l'index du tableau pour obtenir l'élément à l'index spécifié.

Syntaxe

Syntaxe: CHOISIR (index, val_1, val_2 [, val_n])


Indice L'argument accepte une expression entière et doit commencer par un index basé sur 1.
Val_1 à val_n liste d'objets.

Exemples

Exemple 1.1 - CHOISISSEZ () avec index

SÉLECTIONNER CHOISIR (0, 'tech', 'recettes', 'livre de recettes') AS 'index_as_0' GO index_as_0 ---------- NULL


Cela indique NULL car CHOOSE () accepte les arguments d'index et doit commencer par un ou une valeur supérieure à un.

Exemple 1.2 - CHOISIR () avec une valeur d'index valide

CHOISISSEZ LE CHOIX (1, ​​'tech', 'recettes', 'livre de recettes') en tant que 'index_as_1' GO index_as_1 ---------- tech


Cela renvoie l'élément 'tech' comme résultat de la liste de valeurs, car nous en avons passé un comme argument d'index.

Exemple 1.3 - CHOISISSEZ () avec un index supérieur au nombre d'éléments de la liste

SÉLECTIONNEZ CHOISISSEZ (4, 'tech', 'recettes', 'livre de recettes') en tant que 'index_as_4' GO index_as_4 ---------- NULL


Cela retourne NULL car nous passons l'argument d'index en tant que quatre et nous n'avons aucun élément à la quatrième position.

Exemple 1.4 - CHOISISSEZ () avec index décimal

CHOISISSEZ LE CHOIX (2.9, 'tech', 'recettes', 'livre de recettes') en tant que 'decimal_index' GO decimal_index ------------- recettes


Cela ne renvoie aucune erreur. Il montre "recettes" dans le résultat. Lorsque vous transmettez le premier argument en tant que 2.9, il convertit une valeur décimale en entier, traite la valeur décimale 2.9 en tant que 2 et affiche l'élément 'recettes' comme résultat.

Exemple 1.5 CHOISIR () avec index négatif

SÉLECTIONNEZ CHOISISSEZ (-2, 'tech', 'recettes', 'livre de recettes') sous le nom 'Negative_index' GO Negative_index -------------- NULL


Cela se traduit par NULL parce que vous passez le premier argument en tant que valeur négative qui viole la syntaxe. Assurez-vous toujours de toujours passer la valeur entière positive.

Exemple 1.6 CHOISIR () avec variable

DECLARE @index AS INT = 3 CHOISISSEZ LE CHOIX (@index, 'tech', 'recettes', 'livre de recettes') en tant que 'index_as_variable' GO index_as_variable ----------------- livre de recettes


Nous avons déclaré une variable int @index avec la valeur trois et avons transmis la variable en tant que valeur d'index. Il affiche 'cookbook' car il s'agit du troisième élément d'index de la liste.