CHOOSE (Transact-SQL)

在 SQL Server 2012 中從數值清單傳回指定之索引的項目。

主題連結圖示 Transact-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

請參閱

參考

IIF (Transact-SQL)