Fonctions logiques - CHOOSE (Transact-SQL)

S’applique à : ouiSQL Server (toutes les versions prises en charge) OuiAzure SQL Database OuiAzure SQL Managed Instance

Retourne l'élément à l'index spécifié à partir d'une liste de valeurs dans SQL Server.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

CHOOSE ( index, val_1, val_2 [, val_n ] )  

Notes

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.

Arguments

index
Expression entière qui représente un index de base 1 dans la liste des éléments qui suit.

Si la valeur d’index fournie a un type de données numérique autre que int, la valeur est implicitement convertie en un entier. Si la valeur d'index dépasse les limites du tableau de valeurs, CHOOSE renvoie la valeur null.

val_1 ... val_n
Liste de valeurs séparées par des virgules de tous les types de données.

Types de retour

Retourne le type de données ayant la priorité la plus élevée à partir de l'ensemble de types transmis à la fonction. Pour plus d’informations, consultez Priorités des types de données (Transact-SQL).

Remarques

CHOOSE agit comme un index dans un tableau, où le tableau est composé des arguments qui suivent l'argument d'index. L'argument d'index détermine, parmi les valeurs suivantes, celle qui sera retournée.

Exemples

R. Exemple CHOOSE simple

L'exemple suivant retourne le troisième élément de la liste de valeurs fournie.

SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;  

Voici le jeu de résultats obtenu.

Result  
-------------  
Developer  
  
(1 row(s) affected)  

B. Exemple CHOOSE simple basé sur la colonne

L'exemple suivant retourne une chaîne de caractères simple en fonction de la valeur de la colonne ProductCategoryID.

USE AdventureWorks2012;  
GO  
SELECT ProductCategoryID, CHOOSE (ProductCategoryID, 'A','B','C','D','E') AS Expression1  
FROM Production.ProductCategory;  
  

Voici le jeu de résultats obtenu.

ProductCategoryID Expression1  
----------------- -----------  
3                 C  
1                 A  
2                 B  
4                 D  
  
(4 row(s) affected)  
  

C. CHOOSE en association avec MONTH

L'exemple suivant retourne la saison au cours de laquelle l'employé a été embauché. La fonction MONTH est utilisée pour retourner la valeur de mois de la colonne HireDate.

USE AdventureWorks2012;  
GO  
SELECT JobTitle, HireDate, CHOOSE(MONTH(HireDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',   
                                                  'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Hired  
FROM HumanResources.Employee  
WHERE  YEAR(HireDate) > 2005  
ORDER BY YEAR(HireDate);  
  

Voici le jeu de résultats obtenu.

JobTitle                                           HireDate   Quarter_Hired  
-------------------------------------------------- ---------- -------------  
Sales Representative                               2006-11-01 Autumn  
European Sales Manager                             2006-05-18 Spring  
Sales Representative                               2006-07-01 Summer  
Sales Representative                               2006-07-01 Summer  
Sales Representative                               2007-07-01 Summer  
Pacific Sales Manager                              2007-04-15 Spring  
Sales Representative                               2007-07-01 Summer  
  

Voir aussi

IIF (Transact-SQL)