Fonctions logiques - CHOOSE (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

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

Conventions de la syntaxe Transact-SQL

Syntaxe

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

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.

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 AdventureWorks2022;  
GO  
SELECT ProductCategoryID, CHOOSE (ProductCategoryID, 'A','B','C','D','E') AS Expression1  
FROM Production.ProductCategory;  

Voici le jeu de résultats.

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 pendant laquelle un modèle de produit a été modifié pour la dernière fois. La fonction MONTH est utilisée pour retourner la valeur de mois de la colonne ModifiedDate. La fonction CHOOSE est utilisée pour assigner une saison de l’hémisphère nord. Cet exemple utilise la base de données AdventureWorksLT, qui peut être rapidement installée comme exemple de base de données pour une nouvelle Azure SQL Database. Pour plus d’informations, consultez Exemples de bases de données AdventureWorks.

SELECT Name, ModifiedDate, 
CHOOSE(MONTH(ModifiedDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',   
                          'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Modified
FROM SalesLT.ProductModel AS PM
WHERE Name LIKE '%Frame%'
ORDER BY ModifiedDate;  

Voici le jeu de résultats.

Name                        ModifiedDate            Quarter_Modified
--------------------------- ----------------------- ----------------
HL Road Frame               2002-05-02 00:00:00.000 Spring
HL Mountain Frame           2005-06-01 00:00:00.000 Summer
LL Road Frame               2005-06-01 00:00:00.000 Summer
ML Road Frame               2005-06-01 00:00:00.000 Summer
ML Road Frame-W             2006-06-01 00:00:00.000 Summer
ML Mountain Frame           2006-06-01 00:00:00.000 Summer
ML Mountain Frame-W         2006-06-01 00:00:00.000 Summer
LL Mountain Frame           2006-11-20 09:56:38.273 Autumn
HL Touring Frame            2009-05-16 16:34:28.980 Spring
LL Touring Frame            2009-05-16 16:34:28.980 Spring

(10 rows affected)

Étapes suivantes