SQL- 함수2

박현·2022년 9월 29일
0

SQL

목록 보기
14/34

CASE 표현

case 표현은 if-then-else 논리와 유사한 방식으로 표현식을 작성해 SQL의 비교 연산 기능을 보완하는 역할을 한다.

CASE SIMPLE_CASE_EXPRESSION 조건 [ELSE 디폴트값] END

: SIMPLE_CASE_EXPRESSION 조건이 맞으면 SIMPLE_CASE_EXPRESSION 조건 내의 THEN 절을 수행하고, 조건이 맞지 않으면 ELSE 절을 수행한다.

✏️ 입력

SELECT LOC
      ,CASE LOC WHEN 'NEW YORK' THEN 'EAST'
                WHEN 'BOSTON'   THEN 'EAST'
                WHEN 'CHICAGO'  THEN 'CENTER'
                WHEN 'DALLAS'   THEN 'CENTER'
                ELSE 'ETC'
       END AS AREA
    FROM DEPT; //부서정보에서 부서위치를 미국의 동부, 중부, 서부로 구분

🖥️ 출력

CASE SEARCHED_CASE_EXPRESSION 조건 [ELSE 디폴트값] END

: SEARCHED_CASE_EXPRESSION 조건이 맞으면 SEARCHED_CASE_EXPRESSION 조건 내의 THEN 절을 수행하고, 조건이 맞지 않으면 ELSE 절을 수행한다.

✏️ 입력

SELECT ENAME
      ,CASE WHEN SAL >= 3000 THEN 'HIGH'
            WHEN SAL >= 1000 THEN 'MID'
            ELSE 'LOW'
       END AS SALARY_GRADE
    FROM EMP; //EMP에서 급여가 3000이상이면 상등급, 1000이상이면 중등급, 1000미만이면 하등급으로 분류

🖥️ 출력

DECODE(표현식, 기준값1, 값1, [기준값2, 값2, ... , 디폴트값])

: ORACLE에서만 사용하는 함수, 표현식 값이 기준값1이면 값1을 출력하고 기준값2이면 값2를출력한다. 기준값이 없으면 디폴트값을 출력.

✏️ 입력

SELECT ENAME AS 성명
	   ,DEPTNO AS 부서번호
       ,DECODE(DEPTNO, 10, '10번O', '10번X') AS DECODE
 FROM EMP;

🖥️ 출력


NULL 관련 함수

NVL(표현식1, 표현식2) / ISNULL(표현식1, 표현식2)

: 표현식1의 결과 값이 NULL이면 표현식2의 값을 출력. 단 표현식1과 표현식2의 결과 데이터 타입이 같아야 한다.
✏️ 입력

SELECT MGR, NVL(MGR,0) AS MGR FROM EMP;

🖥️ 출력

NULLIF(표현식1, 표현식2)

: 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다.
✏️ 입력

SELECT ENAME, EMPNO, MGR, NULLIF(MGR, 7839) AS NUIF FROM EMP; 
// MGR이 7839와 같이면 NULL을 리턴하고 같지않으면 MGR을 리턴

🖥️ 출력

COALESCE(표현식1, 표현식2, ....)

: 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이라면 NULL을 리턴한다.
✏️ 입력

SELECT ENAME, COMM, SAL, COALESCE(COMM, SAL) AS COAL, COALESCE(COMM, 0) FROM EMP;
//커미션을 1차선택 값으로, 급여를 2차선택값으로 하되, 두 컬럼 모두 NULL인경우는 NULL로 출력

🖥️ 출력

0개의 댓글