CHOOSE (Transact-SQL)
在 SQL Server 中從數值清單傳回指定之索引的項目。
適用於:SQL Server (SQL Server 2012 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。 |
語法
CHOOSE ( index, val_1, val_2 [, val_n ] )
引數
index
表示以 1 為基底之索引到其後之項目清單中的整數運算式。如果已提供的索引值具數值資料類型而非 int,那麼此數值隱含轉換至整數。 如果索引值超過數值陣列的界限,則 CHOOSE 會傳回 null。
val_1 … val_n
任何資料類型的逗號分隔值清單。
傳回類型
從通過功能的類型集中,傳回優先順序最高的資料類型。 如需詳細資訊,請參閱<資料類型優先順序 (Transact-SQL)>。
備註
CHOOSE 作用類似陣列中的索引,其中的陣列是由跟隨索引引數的引數所組成。 其中 time-precision 引數會決定傳回值的秒數有效位數。
範例
下列範例會從已提供的數值清單傳回第三個項目。
SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;
以下為結果集:
Result
-------------
Developer
(1 row(s) affected)
下列範例會根據 ProductCategoryID 資料行中的值傳回簡單的字元字串。
USE AdventureWorks2012;
GO
SELECT ProductCategoryID, CHOOSE (ProductCategoryID, 'A','B','C','D','E') AS Expression1
FROM Production.ProductCategory;
以下為結果集:
ProductCategoryID Expression1
----------------- -----------
3 C
1 A
2 B
4 D
(4 row(s) affected)
下列範例會傳回雇用員工的當季。 MONTH 函數用於從 HireDate 資料行傳回月份的值。
USE AdventureWorks2012;
GO
SELECT JobTitle, HireDate, CHOOSE(MONTH(HireDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',
'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Hired
FROM HumanResources.Employee
WHERE YEAR(HireDate) > 2005
ORDER BY YEAR(HireDate);
以下為結果集:
JobTitle HireDate Quarter_Hired
-------------------------------------------------- ---------- -------------
Sales Representative 2006-11-01 Autumn
European Sales Manager 2006-05-18 Spring
Sales Representative 2006-07-01 Summer
Sales Representative 2006-07-01 Summer
Sales Representative 2007-07-01 Summer
Pacific Sales Manager 2007-04-15 Spring
Sales Representative 2007-07-01 Summer