SQL Server 2012 이전 버젼에서 여러개의 값 중 하나를 고르려면 CASE 문을 열심히 써야 했습니다.

하지만, CHOOSE 가 나오면서 매우 간략해졌는데요...

 

-- SQL Server 2012 이전

 

DECLARE @CODE_NO INT

 

SET @CODE_NO = 3

 

SELECT

        CASE @CODE_NO

               WHEN 1 THEN '서울'

               WHEN 2 THEN '대전'

               WHEN 3 THEN '대구'

               WHEN 4 THEN '부산'

               WHEN 5 THEN '광주'

               ELSE 'NO DATA'

        END AS 'AREA'

 

 

-- SQL Server 2012

 

DECLARE @CODE_NO INT

 

SET @CODE_NO = 3

 

SELECT

        ISNULL(CHOOSE(@CODE_NO, '서울', '대전', '대구', '부산', '광주'),'NO_DATA')  AS 'AREA'

 

 

결과는 동일하게 대구로 나옵니다.

 

1.png

 

간결해졌죠?

 

여기서 주의할 점은 다른 일반적인 사항과 달리 INDEX가 1부터 시작한다는 것입니다.

또한, INDEX 배열 내에 없으면 NULL값을 반환합니다.

 

그리고, 다소 아쉬운 점은 무조건 INDEX값이 INT여야 한다는 것입니다.(INT가 아닐 경우 자동 CASTING)

 

자세한 내용은 아래를

http://msdn.microsoft.com/ko-kr/library/hh213019(v=sql.110).aspx

 

IIF 부분도 한 번 참고해 보시기 바랍니다.

http://www.sqler.com/index.php?mid=bColumn&document_srl=472992

http://msdn.microsoft.com/ko-kr/library/hh213574(v=sql.110).aspx

 

참고로 이것은 RC0 기준입니다.

+ Recent posts