邏輯函式 - CHOOSE (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
在 SQL Server 中從數值清單傳回指定之索引的項目。
語法
CHOOSE ( index, val_1, val_2 [, val_n ] )
引數
index
表示以 1 為基底之索引到其後之項目清單中的整數運算式。
如果已提供的索引值具有數值資料類型,而非 int,則此數值會隱含地轉換成整數。 如果索引值超過數值陣列的界限,則 CHOOSE 會傳回 null。
val_1 ... val_n
任何資料類型的逗號分隔值清單。
傳回型別
從通過功能的類型集中,傳回優先順序最高的資料類型。 如需詳細資訊,請參閱資料類型優先順序 (Transact-SQL)。
備註
CHOOSE 作用類似陣列中的索引,其中的陣列是由跟隨索引引數的引數所組成。 其中 time-precision 引數會決定傳回值的秒數有效位數。
範例
A. 簡易 CHOOSE 範例
下列範例會從已提供的數值清單傳回第三個項目。
SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;
結果集如下所示。
Result
-------------
Developer
(1 row(s) affected)
B. 以資料行為基礎的簡易 CHOOSE 範例
下列範例會根據 ProductCategoryID
資料行中的值傳回簡單的字元字串。
USE AdventureWorks2022;
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)
C. 搭配 MONTH 使用 CHOOSE
下列範例會傳回上次修改產品模型的季節。 MONTH
函數用於從 ModifiedDate
資料行傳回月份的值。 CHOOSE
函式是用來指派北半球季節。 此範例會使用 AdventureWorksLT
資料庫,該資料庫可快速安裝為新 Azure SQL Database 的範例資料庫。 如需詳細資訊,請參閱 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;
結果集如下所示。
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)