ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 조건문
    DB/SQL 2024. 7. 9. 20:07
    /*
    선택 함수
    -- 여러가지 경우에 따라 알맞은 결과를 선택하는 함수
    -- IF, SWITCH 와 비슷
    
    -- DECODE(컬럼명 | 계산식, 조건1, 결과1, 조건2, 결과2, ...[,아무것도 만족X])
    
    -- 컬럼명 | 계산식의 값이 일치하는 조건이 있으면
    --         해당 조건 오른쪽에 작성된 결과가 반환
    */
    
    -- 예제 1)
    ---> EMPLOYEE 테이블에서 모든 사원의 이름, 주민번호, 성별 조회
    SELECT EMP_NAME, EMP_NO,
        DECODE (SUBSTR(EMP_NO,8,1), -- 주민번호 870808-여덟번째 = 성별   성별은 한 자리
                '1', '남자','2','여자',
                '기타') AS "성별"
    FROM EMPLOYEE;
    /*
    EMP_NAME    EMP_NO          성별
    선동일	621231-1985634	    남자
    송종기	631112-1548654	    남자
    노옹철	861015-1356452	    남자
    송은희	631010-2653546	    여자
    */
    
    /*
    CASE
        WHEN 조건1 THEN 결과1
        WHEN 조건2 THEN 결과2
        WHEN 조건3 THEN 결과3
        ELSE 결과
    END
    
    -- DECODE 는 계산식 | 컬럼 값이 딱 떨어지는 경우 사용 가능
    -- CASE 는 계산식 | 컬럼 값을 범위로 지정 가능
    */
    
    -- 예제 1
    -- EMPLOYEE 테이블에서 사번, 이름, 급여, 구분을 조회
    -- 구분 받는 급여에서 초급 중급 고급 조회
    -- 급여가 500 만 이상 고급
    -- 급여가 300 만 이상~ 500 만 미만 중급
    -- 급여가 300 만 미만 초급
    SELECT EMP_ID, EMP_NAME, SALARY, 
        CASE
            WHEN SALARY >= 5000000 THEN '고급' -- WHEN =    IF(SALARY >= 5000000) {
            WHEN SALARY >= 3000000 THEN '중급' -- ELSE IF        System.out.println("고급")
            ELSE '초급'                        -- ELSE       }
        END 구분 -- 표시될 컬럼명
    FROM EMPLOYEE;

    'DB > SQL' 카테고리의 다른 글

    SEQUENCE  (0) 2024.07.11
    DDL(ALTER_DROP)  (0) 2024.07.10
    TCL  (0) 2024.07.08
    SUBQUERY  (0) 2024.07.05
    JOIN  (0) 2024.07.04
Designed by Tistory.