Partilhar via


Funções Lógicas - CHOOSE (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Devolve o item no índice especificado a partir de uma lista de valores no SQL Server.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

índice

É uma expressão inteira que representa um índice baseado em 1 na lista dos itens seguintes.

Se o valor do índice fornecido tiver um tipo de dado numérico diferente de int, então o valor é implicitamente convertido num inteiro. Se o valor do índice exceder os limites do array de valores, então o CHOOSE devolve o valor nulo.

val_1 ... val_n

Lista de valores separados por vírgulas de qualquer tipo de dado.

Tipos de devolução

Devolve o tipo de dado com a precedência mais alta do conjunto de tipos passados para a função. Para obter mais informações, consulte Precedência de Tipos de Dados (Transact-SQL).

Observações

O CHOOSE funciona como um índice dentro de um array, onde o array é composto pelos argumentos que seguem o argumento do índice. O argumento índice determina qual dos seguintes valores será devolvido.

Examples

A. Exemplo simples do CHOOSE

O exemplo seguinte devolve o terceiro item da lista de valores que é fornecida.

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

Aqui está o conjunto de resultados.

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

B. Exemplo simples de CHOOSE baseado numa coluna

O exemplo seguinte devolve uma cadeia de caracteres simples baseada no valor na ProductCategoryID coluna.

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

Aqui está o conjunto de resultados.

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

C. ESCOLHA em combinação com MÊS

O exemplo seguinte retorna à estação em que um modelo de produto foi modificado pela última vez. A MONTH função é usada para devolver o valor do mês da coluna ModifiedDate. A CHOOSE função é usada para atribuir uma estação do Hemisfério Norte. Este exemplo utiliza a AdventureWorksLT base de dados, que pode ser rapidamente instalada como base de dados de exemplo para uma nova Azure SQL Database. Para obter mais informações, consulte bancos de dados de exemplo do 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;  

Aqui está o conjunto de resultados.

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)

Próximos passos