CHOOSE(Transact-SQL)
SQL Server 2012의 값 목록에서 지정된 인덱스에 있는 항목을 반환합니다.
구문
CHOOSE ( index, val_1, val_2 [, val_n ] )
인수
index
index 인수 다음에 나오는 항목 목록에 대한 1부터 시작하는 인덱스를 나타내는 정수 식입니다.int 이외의 숫자 데이터 형식으로 된 인덱스 값을 제공할 경우 값이 암시적으로 정수로 변환됩니다. 인덱스 값이 값 배열 한계를 초과하면 CHOOSE는 Null을 반환합니다.
val_1 … val_n
임의의 데이터 형식으로 된 쉼표로 구분된 값 목록입니다.
반환 형식
함수에 전달된 형식 집합 중에서 우선 순위가 가장 높은 데이터 형식을 반환합니다. 자세한 내용은 데이터 형식 우선 순위(Transact-SQL)를 참조하십시오.
주의
CHOOSE는 배열에서 인덱스와 같은 역할을 하며 배열은 index 인수 다음에 나오는 인수로 구성됩니다. index 인수는 다음 중 반환될 값을 결정합니다.
예
다음 예에서는 제공된 값 목록에서 세 번째 항목을 반환합니다.
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