연봉을 계산하는데 있어서..
어떤 사람은 시급으로 받고, 어떤 사람은 연봉으로 받고, 어떤 사람은 판매량에 따른 커미션을 받는다고 했을때..
각 사람들의 연봉을 구하는 경우..
CASE 문을 쓰면 프로그램에서 따로 코딩하지 않아도 된다.
또한 필요없는 데이터들이 null값으로 들어가 있다면 COALESCE문을 사용하면
더 간단해지고 성능도 좋아진다.
COALESCE함수는 여러개의 표현식 중에서 첫번째로 나타나는 널이 아닌 값을 리턴해준다.
CONVERT 와 CAST는 자료형을 바꿀때 쓰는 함수로 CAST는 ANSI 호환을 위해 사용된다.
다음 예제로 그 쓰임새를 살펴보자
select emp_id, [연봉] =
case
when hourly_wage IS NOT NULL
then convert(money,(hourly_wage * 40 * 52))
when sallary is not null
then convert(money, sallary)
else
convert(money,(commission * num_sales))
end
from wages
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
select emp_id
, [연봉] = cast (
coalesce(hourly_wage*40*52,sallary,commission*num_sales) as money)
from wages
날짜: 2004-05-11 11:40:30,
조회수: 2841 |