論理関数 - CHOOSE (Transact-SQL)Logical Functions - CHOOSE (Transact-SQL)

適用対象: ○SQL Server (2012 以降) ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2012) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server の値の一覧から指定されたインデックスにある項目を返します。Returns the item at the specified index from a list of values in SQL ServerSQL Server.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

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

引数Arguments

indexindex
後に続く項目のリストへの 1 から始まるインデックスを表す整数式。Is an integer expression that represents a 1-based index into the list of the items following it.

入力されたインデックス値が int 以外の数値データ型である場合、暗黙的に値が整数に変換されます。If the provided index value has a numeric data type other than int, then the value is implicitly converted to an integer. インデックス値が値の配列の境界を超えると、CHOOSE は NULL を返します。If the index value exceeds the bounds of the array of values, then CHOOSE returns null.

val_1 ... val_nval_1 ... val_n
任意のデータ型のコンマ区切り値のリスト。List of comma separated values of any data type.

戻り値の型Return Types

関数に渡される一連の型の中から最も優先順位の高いデータ型を返します。Returns the data type with the highest precedence from the set of types passed to the function. 詳細については、「データ型の優先順位 (Transact-SQL)」を参照してください。For more information, see Data Type Precedence (Transact-SQL).

RemarksRemarks

CHOOSE は、配列へのインデックスと同じように機能します。ここで、配列はインデックス引数の後に続く引数で構成されます。CHOOSE acts like an index into an array, where the array is composed of the arguments that follow the index argument. インデックス引数は、後続の値のうちどの値が返されるのかを決定します。The index argument determines which of the following values will be returned.

使用例Examples

A.A. 単純な CHOOSE の例Simple CHOOSE example

次の例では、入力される値のリストの 3 番目の項目が返されます。The following example returns the third item from the list of values that is provided.

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

以下に結果セットを示します。Here is the result set.

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

B.B. 列に基づく単純な CHOOSE の例Simple CHOOSE example based on column

次の例では、ProductCategoryID 列の値に基づく単純な文字列が返されます。The following example returns a simple character string based on the value in the ProductCategoryID column.

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

以下に結果セットを示します。Here is the result set.

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

C.C. MONTH と組み合わせた CHOOSECHOOSE in combination with MONTH

次の例では、従業員が採用された季節が返されます。The following example returns the season in which an employee was hired. HireDate 列から月の値を返すために MONTH 関数が使用されています。The MONTH function is used to return the month value from the column 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);  
  

以下に結果セットを示します。Here is the result set.

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  
  

参照See Also

IIF (Transact-SQL)IIF (Transact-SQL)