MSSQL - Choose 논리 함수 - 특정 값 변경하기

반응형

 

Choose

  • 값 목록에서 지정된 인덱스의 있는 항목을 반환

구문

CHOOSE( index, val1, val2, val3...)
  • index
    • 정수의 값 입력
    • 정수 이외의 숫자 데이터 형식으로된 인덱스 값 제공시 암시적으로 정수로 변환
    • 인덱스 값이 배열 한계를 초과하면 Null 반환
  • val1 ... valN
    • 임의의 데이터 형식으로 된 쉼표로 구분된 값 목록

반환 형식

  • 함수에 전달된 형식 집합 중, 우선 순위가 가장 높은 데이터 형식을 반환  

예시

Choose 예시

select choose(2, '첫번째', '두번째', '세번째') as '결과'
  • 인덱스 : 2
  • 목록에서 두번째의 값(두번째) 반환


열 기반 Choose 예시

  • 테이블 변수를 이용하여 랜덤한 값 1~11을 받고, 해당 값 순서대로 월 표시하기
-- 테이블 변수 생성  
DECLARE @tempTableVar TABLE( number int)

-- 테이블 변수에 임의의 값 10개 입력 (0~10까지의 수)
declare @i int
set @i = 0
while @i < 10 begin
	insert into @tempTableVar (number) values (round(rand()*10, 0)+1)
	set @i += 1
end

-- 입력된 값 확인
select * from @tempTableVar

-- 입력된 값을 choose 함수를 이용하여 값 변경
select choose(number, '1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월') as '월 표시'
from @tempTableVar


참고

반응형