[SQLD] NULL 관련 함수

헤븐리뷰·2023년 3월 5일
0

SQLD

목록 보기
5/7
post-thumbnail

NULL 관련 함수

1. NVL()

NVL(인수1, 인수2): 인수1 값이 NULL이면 인수2를 반환, NULL이 아니면 인수1을 반환해주는 함수

SQL Server(MSSQL)에서는 ISNULL(인수1, 인수2)

예: NVL(REVIEW_SCORE, 0)
-> REVIEW_SCORE (컬럼) 데이터가 NULL이면 0을 반환하고, NULL이 아니면 REVIEW_SCORE 값을 반환

2. NULLIF()

NULLIF(인수1, 인수2): 인수1 == 인수2이면 NULL을 반환, 인수1 != 인수2이면 인수1을 반환해주는 함수
예: NULLIF(REVIEW_SCORE, 0)
-> REVIEW_SCORE (컬럼) 데이터가 0일 경우 NULL을 반환, 0이 아닐 경우 REVIEW_SCORE 값을 반환

3. COALESCE(인수1, 인수2, 인수3)

COALESCE(인수1 ,인수2, 인수3...): NULL이 아닌 최초의 인수를 반환해주는 함수
예: COALESCE(PHONE, EMAIL, FAX)

-- 전체 코드
-- NVL(인수1, 인수2): 인수1값이 NULL이면 인수2 반환, 아닐 경우 인수1 반환

create table REVIEW(
    PRODUCT_ID number(6),
    MEMBER_NO number(2),
    REVIEW_SCORE number(2),
    REVIEW varchar2(72)
);

select * from REVIEW;

insert into REVIEW values(100001, 1, 5, '넘나 좋다는 것');
insert into REVIEW values(100002, 3, null, null);
insert into REVIEW values(100003, 4, 1, '뚫어 송태섭');
insert into REVIEW values(100004, 7, 3, '영감님의 영광의 시대는 언제였나요, 전 지금이거든요');

select * from REVIEW;

-- nvl(인수1, 인수2): 인수1 값이 null이면 인수2 반환, 인수1 값이 null이 아니면 인수1 반환
select MEMBER_NO, nvl(REVIEW_SCORE, 0) as REVIEW_SCORE from REVIEW;

select * from review;

-- nullif(인수1, 인수2): 인수1==인수2이면 null 반환, 인수1!=인수2이면 인수1 반환
select MEMBER_NO, nullif(REVIEW_SCORE, 0) as REVIEW_SCORE, REVIEW from REVIEW;


create table MEMBERINFO(
    MEMBER_NO number(2),
    NAME varchar2(9),
    PHONE varchar2(30),
    EMAIL varchar2(30),
    FAX varchar2(30)
);

insert into MEMBERINFO values(1, '이나경', null, 'abcc@efg.com', '+82 (02) 428-0001');
insert into MEMBERINFO values(2, '송하영', '+82 (022) 262-3441', 'abcf@efg.com', null);
insert into MEMBERINFO values(3, '박지원', null, 'abcd@efg.com', '+82 (02) 428-0003');
insert into MEMBERINFO values(4, '이채영', '+82 (022) 262-3443', null, '+82 (02) 428-0004');
insert into MEMBERINFO values(5, '백지헌', null, 'abce@efg.com', null);
insert into MEMBERINFO values(6, '이서연', '+82 (022) 262-3446', 'abcg@efg.com', '+82 (02) 428-0006');
insert into MEMBERINFO values(7, '노지선', null, null, '+82 (02) 428-0007');
    
select * from MEMBERINFO;

-- coalesce(인수1, 인수2, 인수3 ...): null이 아닌 최초의 인수를 반환해주는 함수
select NAME, coalesce(PHONE, EMAIL, FAX) as CONTACT from MEMBERINFO;
profile
데이터로 세상을 쓰고 읽고 싶은 헤븐리뷰입니다.

0개의 댓글