Sdílet prostřednictvím


Logické funkce - VYBRAT (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrací položku na specifikovaném indexu ze seznamu hodnot v SQL Serveru.

Transact-SQL konvence syntaxe

Syntaxe

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

Arguments

index

Je celočíselný výraz, který reprezentuje index založený na jedničce do seznamu položek následujících za ním.

Pokud má daná hodnota indexu číselný datový typ jiný než int, pak je hodnota implicitně převedena na celé číslo. Pokud hodnota indexu překročí hranice pole hodnot, pak SELECT vrátí null.

val_1 ... val_n

Seznam hodnot oddělených čárkami pro jakýkoli datový typ.

Návratové typy

Vrátí datový typ s nejvyšší předností z množiny typů předaných funkci. Další informace naleznete v tématu priorita datových typů (Transact-SQL).

Poznámky

SELECT funguje jako index do pole, kde pole je složeno z argumentů následujících po indexovém argumentu. Index určuje, která z následujících hodnot bude vrácena.

Examples

A. Jednoduchý příklad SELECT

Následující příklad vrací třetí položku ze seznamu hodnot, který je uveden.

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

Tady je soubor výsledků.

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

B. Jednoduchý příklad SELECT založený na sloupci

Následující příklad vrací jednoduchý řetězec znaků založený na hodnotě ve sloupci ProductCategoryID .

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

Tady je soubor výsledků.

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

C. SELECT v kombinaci s MONTH

Následující příklad vrací sezónu, ve které byl model produktu naposledy upraven. Funkce MONTH se používá k vrácení hodnoty měsíce ze sloupce ModifiedDate. Tato CHOOSE funkce slouží k přiřazení sezóny na severní polokouli. Tento vzorek využívá databázi AdventureWorksLT , kterou lze rychle nainstalovat jako ukázkovou databázi pro novou Azure SQL databázi. Další informace naleznete v ukázkových databázích 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;  

Tady je soubor výsledků.

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)

Další kroky