Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base 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)