Logische Funktionen: CHOOSE (Transact-SQL)Logical Functions - CHOOSE (Transact-SQL)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL DatabaseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database

Gibt das Element am angegebenen Index aus einer Werteliste in SQL ServerSQL Server zurück.Returns the item at the specified index from a list of values in SQL ServerSQL Server.

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumenteArguments

Indexindex
Dies ist ein ganzzahliger Ausdruck, der einen auf 1 basierenden Index in der nachfolgenden Elementliste darstellt.Is an integer expression that represents a 1-based index into the list of the items following it.

Wenn der angegebene Indexwert einen anderen numerischen Datentyp als int hat, wird der Wert implizit in eine ganze Zahl konvertiert.If the provided index value has a numeric data type other than int, then the value is implicitly converted to an integer. Wenn der Indexwert die Grenzen des Wertarrays überschreitet, gibt CHOOSE Null zurück.If the index value exceeds the bounds of the array of values, then CHOOSE returns null.

val_1 ... val_nval_1 ... val_n
Liste von durch Trennzeichen getrennte Werten eines beliebigen Datentyps.List of comma separated values of any data type.

RückgabetypenReturn Types

Gibt den Datentyp mit der höchsten Rangfolge aus dem Satz von Typen zurück, der an die Funktion übergeben wurde.Returns the data type with the highest precedence from the set of types passed to the function. Weitere Informationen finden Sie unter Rangfolge der Datentypen (Transact-SQL).For more information, see Data Type Precedence (Transact-SQL).

HinweiseRemarks

CHOOSE hat die gleiche Funktion wie ein Index in einem Array, wobei das Array aus den Argumenten besteht, die dem Indexargument folgen.CHOOSE acts like an index into an array, where the array is composed of the arguments that follow the index argument. Das Indexargument bestimmt, welcher der folgenden Werte zurückgegeben wird.The index argument determines which of the following values will be returned.

BeispieleExamples

A.A. Einfaches CHOOSE-BeispielSimple CHOOSE example

Im folgenden Beispiel wird das dritte Element aus der Liste der Werte zurückgegeben, die angegeben wurde.The following example returns the third item from the list of values that is provided.

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

Hier ist das Resultset.Here is the result set.

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

B.B. Einfaches CHOOSE-Beispiel, basierend auf einer SpalteSimple CHOOSE example based on column

Im folgenden Beispiel wird eine einfache Zeichenfolge zurückgegeben, die auf dem Wert in der Spalte ProductCategoryID basiert.The following example returns a simple character string based on the value in the ProductCategoryID column.

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

Hier ist das Resultset.Here is the result set.

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

C.C. CHOSSE in Kombination mit MONTHCHOOSE in combination with MONTH

Im folgenden Beispiel wird die Jahreszeit zurückgegeben, in der ein Mitarbeiter eingestellt wurde.The following example returns the season in which an employee was hired. Die MONTH-Funktion wird verwendet, um den Monatswert aus der Spalte HireDate zurückzugeben.The MONTH function is used to return the month value from the column 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);  
  

Hier ist das Resultset.Here is the result set.

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  
  

Siehe auchSee Also

IIF (Transact-SQL)IIF (Transact-SQL)