Logische Funktionen: CHOOSE (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Gibt das Element am angegebenen Index aus einer Werteliste in SQL Server zurück.
Transact-SQL-Syntaxkonventionen
Syntax
CHOOSE ( index, val_1, val_2 [, val_n ] )
Argumente
Index
Dies ist ein ganzzahliger Ausdruck, der einen auf 1 basierenden Index in der nachfolgenden Elementliste darstellt.
Wenn der angegebene Indexwert einen anderen numerischen Datentyp als int hat, wird der Wert implizit in eine ganze Zahl konvertiert. Wenn der Indexwert die Grenzen des Wertarrays überschreitet, gibt CHOOSE Null zurück.
val_1 ... val_n
Liste von durch Trennzeichen getrennte Werten eines beliebigen Datentyps.
Rückgabetypen
Gibt den Datentyp mit der höchsten Rangfolge aus dem Satz von Typen zurück, der an die Funktion übergeben wurde. Weitere Informationen finden Sie unter Rangfolge der Datentypen (Transact-SQL).
Hinweise
CHOOSE hat die gleiche Funktion wie ein Index in einem Array, wobei das Array aus den Argumenten besteht, die dem Indexargument folgen. Das Indexargument bestimmt, welcher der folgenden Werte zurückgegeben wird.
Beispiele
A. Einfaches CHOOSE-Beispiel
Im folgenden Beispiel wird das dritte Element aus der Liste der Werte zurückgegeben, die angegeben wurde.
SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;
Hier sehen Sie das Ergebnis.
Result
-------------
Developer
(1 row(s) affected)
B. Einfaches CHOOSE-Beispiel, basierend auf einer Spalte
Im folgenden Beispiel wird eine einfache Zeichenfolge zurückgegeben, die auf dem Wert in der Spalte ProductCategoryID
basiert.
USE AdventureWorks2022;
GO
SELECT ProductCategoryID, CHOOSE (ProductCategoryID, 'A','B','C','D','E') AS Expression1
FROM Production.ProductCategory;
Hier sehen Sie das Ergebnis.
ProductCategoryID Expression1
----------------- -----------
3 C
1 A
2 B
4 D
(4 row(s) affected)
C. CHOSSE in Kombination mit MONTH
Das folgende Beispiel gibt die Saison zurück, in der ein Produktmodell zuletzt geändert wurde. Die MONTH
-Funktion wird verwendet, um den Monatswert aus der Spalte ModifiedDate
zurückzugeben. Die CHOOSE
-Funktion wird verwendet, um eine Jahreszeit der nördlichen Hemisphäre zuzuweisen. Diese Beispiel verwendet die Datenbank AdventureWorksLT
, die schnell als Beispieldatenbank für eine neue Azure SQL-Datenbank installiert werden kann. Weitere Informationen finden Sie in den AdventureWorks-Beispieldatenbanken.
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;
Hier sehen Sie das Ergebnis.
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)