푸른청년 푸르게 살고있나?  
home | 살아가기 | news | 세상보기 | tip&tech | 방명록 |  
   전체
   asp
   php
   jsp
   mssql
   mysql
   informix
   linux
   unix
   win2000
   javascript
   html
   oracle
   java
   etc
    
:: Tip&Tech > mssql
CASE 와 COALESCE 사용하기
연봉을 계산하는데 있어서..
어떤 사람은 시급으로 받고, 어떤 사람은 연봉으로 받고, 어떤 사람은 판매량에 따른 커미션을 받는다고 했을때..
각 사람들의 연봉을 구하는 경우..
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, 조회수: 2657

다음글 COMPUTE 와 COMPUTE BY 쓰기
이전글 [mssql] 상관 부질의를 이용한 업데이트 문

꼬리말
글쓴이 비밀번호 #스팸글방지(주인장 닉네임을 쓰시오)

  
since by 2003.03.23 / 3th 2005.07.26 / 4th 2009.04.22 made by bluesoul