카테고리:

조건식 함수

NVL

expr1 이 NULL인 경우 expr2 를 반환하고, 그렇지 않으면 expr1 을 반환합니다.

별칭:

IFNULL

구문

NVL( <expr1> , <expr2> ) 
Copy

인자

expr1

일반적인 식입니다.

expr2

일반적인 식입니다.

사용법 노트

  • 가능하면 같은 유형의 인자를 전달하십시오. 다른 유형의 인자는 전달하지 않도록 하십시오.

  • 인자 중 하나가 숫자인 경우 이 함수는 숫자가 아닌 문자열 인자(예: 'a string')와 상수가 아닌 문자열 인자를 NUMBER(18,5) 형식으로 강제 변환 합니다.

    상수가 아닌 숫자형 문자열 인자의 경우 NUMBER(18,5)가 숫자 값을 나타내기에 충분하지 않으면 해당 값을 나타낼 수 있는 형식으로 인자를 형 변환 해야 합니다.

  • 두 식 모두 UNION, INTERSECT, EXCEPT, MINUS 같은 세트 연산자가 있는 SELECT 문을 포함할 수 있습니다. 세트 연산자를 사용할 때 데이터 타입이 호환되는지 확인하십시오. 자세한 내용은 세트 연산자 항목의 일반적인 사용법 노트 를 참조하십시오.

데이터 정렬 세부 정보

반환

반환 식의 데이터 타입을 반환합니다.

두 식이 모두 NULL인 경우에는 NULL을 반환합니다.

공급자의 연락처 정보가 포함된 테이블을 만듭니다.

CREATE TABLE IF NOT EXISTS suppliers ( supplier_id INT PRIMARY KEY, supplier_name VARCHAR(30), phone_region_1 VARCHAR(15), phone_region_2 VARCHAR(15)); 
Copy

테이블에는 서로 다른 두 리전의 각 공급자에 대한 전화번호가 포함됩니다. 전화번호는 리전에 따라 NULL일 수 있습니다.

테이블에 값을 삽입합니다.

INSERT INTO suppliers(supplier_id, supplier_name, phone_region_1, phone_region_2) VALUES(1, 'Company_ABC', NULL, '555-01111'), (2, 'Company_DEF', '555-01222', NULL), (3, 'Company_HIJ', '555-01333', '555-01444'), (4, 'Company_KLM', NULL, NULL); 
Copy

다음 SELECT 문은 NVL 함수를 사용하여 phone_region_1phone_region_2 값을 검색합니다.

이 예에서는 NVL 함수에 대해 다음 결과를 보여줍니다.

  • IF_REGION_1_NULL 열에는 phone_region_1 의 값이 포함되거나 해당 값이 NULL인 경우 phone_region_2 의 값이 포함됩니다.

  • IF_REGION_2_NULL 열에는 phone_region_2 의 값이 포함되거나 해당 값이 NULL인 경우 phone_region_1 의 값이 포함됩니다.

  • phone_region_1phone_region_2 가 모두 NULL인 경우 함수는 NULL을 반환합니다.

SELECT supplier_id, supplier_name, phone_region_1, phone_region_2, NVL(phone_region_1, phone_region_2) IF_REGION_1_NULL, NVL(phone_region_2, phone_region_1) IF_REGION_2_NULL FROM suppliers ORDER BY supplier_id; 
Copy
+-------------+---------------+----------------+----------------+------------------+------------------+ | SUPPLIER_ID | SUPPLIER_NAME | PHONE_REGION_1 | PHONE_REGION_2 | IF_REGION_1_NULL | IF_REGION_2_NULL | |-------------+---------------+----------------+----------------+------------------+------------------| | 1 | Company_ABC | NULL | 555-01111 | 555-01111 | 555-01111 | | 2 | Company_DEF | 555-01222 | NULL | 555-01222 | 555-01222 | | 3 | Company_HIJ | 555-01333 | 555-01444 | 555-01333 | 555-01444 | | 4 | Company_KLM | NULL | NULL | NULL | NULL | +-------------+---------------+----------------+----------------+------------------+------------------+