본문 바로가기

데이터베이스(DB)/Oracle
[Oracle] NULL 관련 함수, DECODE 함수

// NULL 함수


- 반환 값이 NULL일 경우 대체 값을 제공하는 함수: NVL(NULL, 대체값)

SELECT NVL(AGE, 0) FROM MEMBER;

- 회원들의 이메일 조회(이메일이 (null)인 경우 '없음'으로 대체)

SELECT NVL(EMAIL, '없음') FROM MEMBER;

- NVL에서 조건을 하나 더 확장: NVL2(입력값, NOTNULL대체값, NULL대체값)

SELECT NVL2(AGE, 100/AGE, 0) FROM MEMBER;

- 회원들의 이메일 입력 여부 조회(이메일이 (null)인 경우 '없음'으로 대체, NULL 이 아닐 경우 '있음'으로 대체)

SELECT NVL2(EMAIL,'있음', '없음') FROM MEMBER;

- 두 값이 같은 경우 NULL, 그렇지 않은 경우 첫 번째 값 반환: NULLIF(값1, 값2)

SELECT NULLIF(AGE,19) FROM MEMBER;

- 나이가 26살인 경우 NULL 값으로 반환하여 회원 정보 조회

SELECT NAME, NULLIF(AGE, 26) FROM MEMBER;

// DECODE 함수

- 상황에 따라 다른 결과를 보여준다.


- 조건에 따른 값 선택: DECOD(기준값, 비교값, 출력값. 비교값, 출력값)

SELECT DECODE(GENDER, '남성', 1, 2) FROM MEMBER;

- 휴대폰 앞자리가 011이면 'SK', 016이면 'KT', 나머지는 '자유'로 조회

SELECT DECODE(SUBSTR(PHONE,1,3)
                            , '011','SK'
                            , '016', 'KT'
                            , '자유') FROM MEMBER;

 

'데이터베이스(DB) > Oracle' 카테고리의 다른 글

[Oracle] 순위 함수  (0) 2023.02.20
[Oracle] 집계 함수, Group by절, Having절  (0) 2023.02.20
[Oracle] 변환 함수  (0) 2023.02.19
[Oracle] 날짜 시간 함수  (0) 2023.02.18
[Oracle] 숫자 함수  (0) 2023.02.17