Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrací položku na specifikovaném indexu ze seznamu hodnot v SQL Serveru.
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)