Logische Funktionen: CHOOSE (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure 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 ] )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

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 ist das Resultset.

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 ist das Resultset.

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 ist das Resultset.

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)

Nächste Schritte