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)