Delen via


Logische functies - SELECT (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft het item terug op de opgegeven index uit een lijst met waarden in SQL Server.

Transact-SQL syntaxis-conventies

Syntaxis

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

Arguments

index

Is een gehele expressie die een 1-gebaseerde index voorstelt in de lijst van de volgende items.

Als de opgegeven indexwaarde een ander numeriek datatype dan int heeft, wordt de waarde impliciet omgezet in een geheel getal. Als de indexwaarde de grenzen van de array van waarden overschrijdt, geeft CHOOSE null terug.

val_1 ... val_n

Lijst van komma-gescheiden waarden van elk datatype.

Retourtypen

Geeft het datatype met de hoogste prioriteit terug uit de set types die aan de functie zijn doorgegeven. Zie prioriteit voor gegevenstypen (Transact-SQL) voor meer informatie.

Opmerkingen

CHOOSE fungeert als een index in een array, waarbij de array bestaat uit de argumenten die volgen op het indexargument. Het indexargument bepaalt welke van de volgende waarden worden teruggegeven.

Voorbeelden

Eén. Eenvoudig voorbeeld van CHOOSE

Het volgende voorbeeld geeft het derde item uit de lijst met waarden terug die wordt gegeven.

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

Hier is het resultatenoverzicht.

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

B. Eenvoudig CHOOSE-voorbeeld gebaseerd op kolom

Het volgende voorbeeld geeft een eenvoudige tekenreeks terug op basis van de waarde in de ProductCategoryID kolom.

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

Hier is het resultatenoverzicht.

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

C. KIES in combinatie met MAAND

Het volgende voorbeeld geeft het seizoen weer waarin een productmodel voor het laatst is aangepast. De MONTH functie wordt gebruikt om de maandwaarde uit de kolom ModifiedDateterug te geven. De CHOOSE functie wordt gebruikt om een seizoen op het noordelijk halfrond toe te wijzen. Dit voorbeeld gebruikt de AdventureWorksLT database, die snel kan worden geïnstalleerd als voorbeelddatabase voor een nieuwe Azure SQL-database. Zie AdventureWorks-voorbeelddatabasesvoor meer informatie.

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 is het resultatenoverzicht.

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)

Volgende stappen