- 카테고리:
IFNULL¶
expr1
이 NULL인 경우 expr2
를 반환하고, 그렇지 않으면 expr1
을 반환합니다.
- 별칭:
구문¶
IFNULL( <expr1> , <expr2> )
인자¶
expr1
일반적인 식입니다.
expr2
일반적인 식입니다.
사용법 노트¶
가능하면 같은 유형의 인자를 전달하십시오. 다른 유형의 인자는 전달하지 않도록 하십시오.
인자 중 하나가 숫자인 경우 이 함수는 숫자가 아닌 문자열 인자(예:
'a string'
)와 상수가 아닌 문자열 인자를 NUMBER(18,5) 형식으로 강제 변환 합니다.상수가 아닌 숫자형 문자열 인자의 경우 NUMBER(18,5)가 숫자 값을 나타내기에 충분하지 않은 경우 해당 값을 나타낼 수 있는 형식으로 인자를 캐스팅 해야 합니다.
두 식 모두
UNION
,INTERSECT
,EXCEPT
,MINUS
같은 세트 연산자가 있는SELECT
문을 포함할 수 있습니다. 세트 연산자를 사용할 때 데이터 타입이 호환되는지 확인하십시오. 자세한 내용은 세트 연산자 항목의 일반적인 사용법 노트 를 참조하십시오.
데이터 정렬 세부 정보¶
The collation specifications of all input arguments must be compatible.
The collation of the result of the function is the highest-precedence collation of the inputs.
반환¶
반환 식의 데이터 타입을 반환합니다.
두 식이 모두 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));
테이블에는 서로 다른 두 리전의 각 공급자에 대한 전화번호가 포함됩니다. 전화번호는 리전에 따라 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);
다음 SELECT 문은 IFNULL 함수를 사용하여 phone_region_1
및 phone_region_2
값을 검색합니다.
이 예에서는 IFNULL 함수에 대해 다음 결과를 보여줍니다.
IF_REGION_1_NULL
열에는phone_region_1
의 값이 포함되거나 해당 값이 NULL인 경우phone_region_2
의 값이 포함됩니다.IF_REGION_2_NULL
열에는phone_region_2
의 값이 포함되거나 해당 값이 NULL인 경우phone_region_1
의 값이 포함됩니다.phone_region_1
및phone_region_2
가 모두 NULL인 경우 함수는 NULL을 반환합니다.
SELECT supplier_id,
supplier_name,
phone_region_1,
phone_region_2,
IFNULL(phone_region_1, phone_region_2) IF_REGION_1_NULL,
IFNULL(phone_region_2, phone_region_1) IF_REGION_2_NULL
FROM suppliers
ORDER BY supplier_id;
+-------------+---------------+----------------+----------------+------------------+------------------+
| 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 |
+-------------+---------------+----------------+----------------+------------------+------------------+