오라클 NVL 기능

Olakeul Nvl Gineung



null 값은 비어 있거나 할당된 값이 없는 필드입니다.

NULL 값은 특히 외부 데이터를 가져올 때 데이터베이스에서 일반적입니다. 따라서 열에 NULL 값을 방지하는 제약 조건이 포함되어 있지 않으면 데이터베이스 엔진은 누락된 값에 NULL 값을 사용할 가능성이 높습니다.







NULL 값은 일반적이지만 데이터베이스에 작업할 값이 없으므로 데이터베이스 문제가 발생할 수 있습니다. 따라서 쿼리에서 NULL 값을 처리하는 작업을 적용하는 것이 좋습니다.



이 게시물에서는 데이터베이스에서 작업 오류가 발생할 가능성이 적은 기본값을 포함하도록 지정된 테이블의 NULL 값을 변환하는 방법을 알아봅니다.



오라클 NVL 기능

언급했듯이 이 함수를 사용하면 NULL 값을 보다 의미 있는 값으로 대체할 수 있습니다. 함수 구문은 다음과 같습니다.





NVL ( 특급1, 특급2 ) ;

이 함수는 두 가지 주요 인수를 허용합니다.

expr1 및 expr2 – 이 매개변수는 NULL 값에 대해 테스트할 값을 정의합니다. expr1의 값이 NULL이면 함수는 expr2의 값을 반환합니다.



두 표현식 모두 유사하거나 다른 데이터 유형을 가질 수 있습니다. 해당 데이터 유형이 다른 경우 데이터베이스 엔진은 데이터 유형과의 호환성을 허용하기 위해 암시적 변환을 수행할 수 있습니다. 해당 데이터 유형을 변환할 수 없는 경우 데이터베이스 엔진에서 오류가 발생합니다.

Oracle NVL() 함수 사용 예

다음 예제는 NVL() 함수의 기본 사용법을 보여줍니다.

예 1

다음 예를 고려하십시오.

고르다 레벨 ( '안녕하세요' , '세계' ) 이중에서;

이전 예제에서는 NVL() 함수를 사용하여 문자열 'hello'가 NULL 값인지 테스트했습니다. 제공된 값이 null이 아니므로 함수는 문자열 'hello'를 반환합니다.

예 2

아래에 표시된 두 번째 예를 고려하십시오.

고르다 레벨 ( 없는, '세계' ) 이중에서;

이 경우 첫 번째 표현식이 NULL 값이므로 쿼리는 아래와 같이 두 번째 문자열을 반환합니다.

예 3

NVL() 함수를 사용하여 데이터베이스 테이블의 NULl 값을 바꿀 수도 있습니다. 아래 표시된 직원 테이블을 고려하십시오.

고르다 EMPLOYEES 직원의 FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT;

결과 테이블:

보시다시피, commit_pct 열에는 NULl 값이 포함되어 있습니다. 아래 예와 같이, commit_pct 열의 NULL 값을 0으로 바꾸는 쿼리를 생성할 수 있습니다.

고르다 FIRST_NAME, LAST_NAME, 이메일, 급여, nvl ( COMMISSION_PCT, 0 )
EMPLOYEES emp에서;

이전 예제 쿼리에서는 NVL() 함수를 사용하여 NULL에 대한 Commission_pct 열의 값을 테스트했습니다. NULL 값이 있으면 0을 반환합니다. 그렇지 않으면 원래 값을 반환합니다.

이렇게 하면 아래 결과 테이블과 같이 열의 NULL 값을 0으로 바꿀 수 있습니다.

이를 UPDATE 문과 함께 사용하거나 결과 값을 테이블 뷰에 저장할 수 있습니다.

결론

이 자습서에서는 Oracle NVL() 함수를 사용하여 NULL 값을 기본값으로 바꾸는 방법을 배웠습니다. NVL() 함수가 COALESCE() 함수와 매우 유사하지만 NVL() 함수는 단일 값만 반환할 수 있다는 점을 기억하는 것이 좋습니다. 동시에 coalesce() 함수는 여러 값을 반환할 수 있습니다.

coalesce() 함수를 사용하지 않고 두 개 이상의 인수를 취할 수 있는 함수를 찾고 있다면 NVL2() 함수를 고려하십시오.