inblog logo
|
soultree
    SQLOracle

    [SQL] 여러가지 NULL 관련 함수

    데이터베이스에서 기본적으로 제공해주는 NULL 관련 함수들이다.
    Hi's avatar
    Hi
    Aug 05, 2024
    [SQL] 여러가지 NULL 관련 함수
    Contents
    ✅ 1. NVL(속성, 대체할 값)✅ 2. NULLIF(속성, 대체할 값)✅ 3. COALESCE(속성1, 속성2, 속성3, …)✅ 4. NVL2(속성, 대체값1, 대체값2)✅ 5. CASE

    💡
    데이터베이스에서 기본적으로 제공해주는 NULL 관련 함수들이다.
    ✅ 1. NVL(속성, 대체할 값)✅ 2. NULLIF(속성, 대체할 값)✅ 3. COALESCE(속성1, 속성2, 속성3, …)✅ 4. NVL2(속성, 대체값1, 대체값2)✅ 5. CASE방법1.방법2.
     

    ✅ 1. NVL(속성, 대체할 값)

    속성의 값이 NULL일 경우 대체할 값을 반환하고, NULL이 아닐 경우 속성의 값을 반환하는 함수이다.
    NVL(col1, 0) -> col1이 null이면 0 반환, null이 아니면 col1 그대로 반환
     

    ✅ 2. NULLIF(속성, 대체할 값)

    속성의 값과 대체할 값이 같으면 NULL을 반환하고, 다르면 속성의 값을 반환하는 함수이다.
    NULLIF(col1, 0) -> col1이 0이라면 NULL 반환, 0이 아니라면 col1 그대로 반환
     

    ✅ 3. COALESCE(속성1, 속성2, 속성3, …)

    여러 속성 중 NULL이 아닌 최초의 속성값을 반환하는 함수이다.
    만약, 특정 회원의 연락처를 가져오고 싶은데, phone, email, sns 등의 속성이 있고 각 회원은 셋 중 한 개 이상에 연락처를 등록했다고 가정하자.
    그럴 때 셋 중 하나의 연락처를 가져오고 싶다면 아래와 같이 작성할 수 있다.
    select COALESCE(phone, email, sns) as contact from user;
     

    ✅ 4. NVL2(속성, 대체값1, 대체값2)

    속성의 값이 NULL이 아닌 경우 대체값1을 반환하고, NULL인 경우 대체값2를 반환하는 함수이다.
    만약, 특정 회원의 나이 정보(age)가 존재하는지 확인하고 싶다면?
    select NVL2(age, '나이정보존재', '나이정보없음') as 존재여부 from user
     

    ✅ 5. CASE

    CASE는 다른 프로그래밍 언어의 if else 구문과 유사하다.

    방법1.

    CASE WHEN grade = 1 THEN 'A' WHEN grade = 2 THEN 'B' WHEN grade = 3 THEN 'C' [ELSE 'D'] // ELSE는 생략이 가능하다. 생략하면 default 값으로 NULL값이 들어간다. END
     

    방법2.

    CASE grade WHEN 1 THEN 'A' WHEN 2 THEN 'B' WHEN 3 THEN 'C' [ELSE 'D'] // ELSE는 생략이 가능하다. 생략하면 default 값으로 NULL값이 들어간다. END
     
    이렇게 단순히 ‘같은지를’ 비교하는 구문은 DECODE 함수로 대체할 수 있다.
    DECODE(grade, 1, 'A', 2, 'B', 3, 'C', 'D') // 'D'는 생략 가능
     
    Share article
    Contents
    ✅ 1. NVL(속성, 대체할 값)✅ 2. NULLIF(속성, 대체할 값)✅ 3. COALESCE(속성1, 속성2, 속성3, …)✅ 4. NVL2(속성, 대체값1, 대체값2)✅ 5. CASE

    soultree

    RSS·Powered by Inblog