Udostępnij za pomocą


Funkcje logiczne - WYBIERZ (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca element na określonym indeksie z listy wartości w SQL Server.

Transact-SQL konwencje składni

Składnia

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

Arguments

indeks

Jest wyrażeniem liczbowym reprezentującym indeks oparty na 1 w liście elementów następujących po nim.

Jeśli podana wartość indeksu ma inny typ danych niż int, wartość ta jest niejawnie przekształcana w liczbę całkowitą. Jeśli wartość indeksu przekracza ograniczenia tablicy wartości, SELECT zwraca wartość zerową.

val_1 ... val_n

Lista wartości oddzielonych przecinkami dowolnego typu danych.

Typy zwracane

Zwraca typ danych o najwyższym przykładzie spośród zestawu typów przekazanych funkcji. Aby uzyskać więcej informacji, zobacz pierwszeństwo typu danych (Transact-SQL).

Uwagi

SELECT działa jak indeks w tablicy, gdzie tablica składa się z argumentów następujących po argumentze indeksu. Argument indeksu określa, która z poniższych wartości zostanie zwrócona.

Przykłady

A. Prosty przykład SELECT

Poniższy przykład zwraca trzeci element z listy wartości, która jest dostępna.

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

Oto zestaw wyników.

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

B. Prosty przykład SELECT oparty na kolumnie

Poniższy przykład zwraca prosty ciąg znaków na podstawie wartości w kolumnie ProductCategoryID .

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

Oto zestaw wyników.

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

C. SELECT w połączeniu z MONTH

Poniższy przykład przywraca sezon, w którym model produktu został ostatnio zmodyfikowany. Funkcja ta MONTH służy do zwracania wartości miesiąca z kolumny ModifiedDate. Funkcja ta CHOOSE służy do przypisania sezonu na półkuli północnej. Ten przykład wykorzystuje bazę AdventureWorksLT danych, którą można szybko zainstalować jako przykładową bazę danych dla nowej bazy Azure SQL. Aby uzyskać więcej informacji, zobacz przykładowe bazy danych 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;  

Oto zestaw wyników.

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)

Dalsze kroki