Welcome to Our Website

Oracle 병합 기능

요약:이 튜토리얼에서,당신은 방법을 사용하여 OracleCOALESCE()으로 null 이 아닌 첫 번째 인수로서 목록.

소개 Oracle COALESCE()함수

OracleCOALESCE()함수의 목록을 인수하고 반환합니다 첫 번째 중 하나로 계산되는 값이 null 이 아닌 값입니다.,

다음의 구문을 보여 줍니다 OracleCOALESCE()기능:

이 구문에서COALESCE()기능을 반환합니다 첫 번째 비 null 식 목록에 있습니다. 적어도 두 가지 표현이 필요합니다. 모든 표현식이 null 로 평가되면 함수는 null 을 반환합니다.,

다음 예제 중 하나를 반환합니다 그것은 처음이기 때문에 null 이 아닌 인수:

 RESULT---------- 1

다음 예에는 null 을 반환합하기 때문에 모든 인수는 null:

Return 유형

경우는 모든 인수가 동일한 데이터 유형COALESCE()함수의 값을 반환하는 데이터를 입력합니다.

경우 인수에는 다른 데이터의 유형COALESCE()기능을 암시적으로 변환 모두 인수하는 데이터의 유형이 null 이 아닌 첫 번째 인수로 합니다., 변환이 실패 할 경우 오라클이 오류를 발행합니다.

다음 예제는 모든 인수가 문자이기 때문에 문자 유형이있는 값을 반환합니다.,

마찬가지로,다음 예제에서는 반환하는 값과 숫자 형식이다:

 RESULT---------- 1

그러나,다음 예제에서의 인수를 사용하는 다른 유형COALESCE()기능:

Oracle 다음과 같은 오류가:

기 때문에COALESCE()기능을 시도 변환할 문자 입력의 세 번째 인수에 숫자 형식이 두 번째 인수의 결과에 오류가 있습니다.,

단락 회로 평가

COALESCE()기능을 사용하는 단락 회로 평가입니다. 즉,첫 번째 표현식이 null 이 아닌 값으로 평가되는 것을 발견하면 함수가 나머지 표현식을 평가하는 것을 중지합니다.

다음 예제를 살펴보겠습니다.

이 예제에서는COALESCE()기능을 만 평가 먼저 표현하기 때문에 결과의 첫 번째 식 두(1+1)입니다. 두 번째 식(1/0)을 평가하지 않았습니다. 그렇게했다면 오라클은 제로 오류로 부문을 발행했을 것입니다.,

Oracle COALESCE()example

테스트를 위한 샘플 테이블을 설정해 보겠습니다.

이 있다고 가정 기록에 비상 연락처를과 직원의 다양한 전화 번호:전화,집 전화,휴대폰. 그것을 만들고 새로운 테이블 라는emergency_contacts다음과 같다:

다음과 같은 문 삽입 비상 연락처를 테이블:

어떤 연락처해야만 작동 전화는 할 수 있습니다 다른 집 전화 및 휴대 전화나 없이 전화 번호다.,

다음과 같은 쿼리를 검색합니다 직원 및 그들의 비상 연락처로 전화번호:

이 예제에서,우리가 사용하는COALESCE()기능을 선택한 집 전화,전화,또는 셀룰라 전화하면 각 사용할 수 있습니다. 전화 번호를 사용할 수없는 경우N/A사용할 수 없음을 나타내는 리터럴 문자열을 반환했습니다.,

다음과 같은 결과를 보여 줍니다 쿼리:

Oracle COALESCE() 와 경우 식

사용할 수 있습니다COALESCE()기능을 대신에 이상CASE식 때 null 테스트에 여러 표현입니다. COALESCE()함수는 널 평가를 포함하는CASE표현식보다 간결합니다.,

If you check for NULL in two expressions, the COALESCE() function is equivalent to the CASE expression.

For example, the following COALESCE() function:

is equivalent to:

Likewise,

is equivalent to

Oracle COALESCE() vs. NVL()

The COALESCE() function is a part of SQL ANSI-92 standard while NVL() function is Oracle specific.,

두 표현식의 경우COALESCE()함수와NVL()는 비슷하지만 구현은 다릅니다. 다음 문을 참조하십시오.

두 문 모두 하나의 동일한 결과를 반환합니다. 그러나COALESCE()기능을 평가 먼저 표현하는 결과를 결정하는NVL()기능을 평가하 모두 식입니다.,

의 다음 예제를 살펴보겠습니다:

문 위에 반환되는 반면,1 다음 예제에서는 오류가 발생합니다:

이 오류는 다음과 같습니다.

기 때문에NVL()기능을 평가하는 두 번째 식1/0일으키는 오류가 있습니다.

이 튜토리얼에서,당신은 어떻게 배웠을 사용하여 OracleCOALESCE()으로 null 이 아닌 첫 번째 표현은 목록의 표현입니다.이 튜토리얼이 도움이 되었습니까?,

  • YesNo
  • 답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다