전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (171)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Database/Oracle

[Oracle] 함수(FUNCTION)_선택 함수

2023. 7. 4. 19:39

<선택 함수>


DECODE(비교하고자 하는 대상(컬럼|산술연산|함수식), 비교값1, 결과값1, 비교값2, 결과값2,...)

SWITCH(비교대상){
CASE 비교값1 : 
     BREAK;
CASE 비교값2 :
     BREAK;
...
DEFAULT :
)
-- 사번, 사원명, 주민번호
SELECT EMP_ID, EMP_NAME, EMP_NO, SUBSTR(EMP_NO, 8, 1),
DECODE(SUBSTR(EMP_NO, 8, 1),'1', '남', '2', '여') AS "성별"
FROM EMPLOYEE;

 

-- 직원의 급여 조회시 각 직급별로 인상해서 조회
-- J7인 사원은 급여를 10% 인상   (SALARY + 1.1)
-- J6인 사원은 급여를 15% 인상   (SALARY * 1.15)
-- J5인 사원은 급여를 20% 인상   (SALARY * 1.2)
-- 그 외의 사원은 급여를 5% 인상 (SALARY * 1.05)

-- 사원명, 직급코드, 기존급여, 인상된급여
SELECT EMP_NAME, JOB_CODE, SALARY,
    DECODE(JOB_CODE, 'J7', SALARY * 1.1,
                    'J6', SALARY * 1.15,
                    'J5', SALARY * 1.2,
                    SALARY * 1.05) AS "인상된 급여"
FROM EMPLOYEE;

 


CASE WHEN THEN

CASE WHEN 조건식1 THEN 결과값1
    WHEN 조건식2 TEHN 결과값2
    ....
    ELSE 결과값
END

자바에서의 IF - ELSE IF - ELSE 문
SELECT EMP_NAME, SALARY,
    CASE WHEN SALARY >= 5000000 THEN '고급 개발자'
        WHEN SALARY >= 3500000 THEN '중급 개발자'
        ELSE '초급'
    END AS "레벨"
FROM EMPLOYEE;

 

 

 

 

 

 

    'Database/Oracle' 카테고리의 다른 글
    • [Oracle] GROUP BY 절
    • [Oracle] 함수(FUNCTION)_그룹 함수
    • [Oracle] 함수(FUNCTION)_NULL 처리 함수
    • [Oracle] 함수(FUNCTION)_형 변환 함수
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바