요약:이 튜토리얼에서,당신은 방법을 사용하여 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 이 아닌 첫 번째 표현은 목록의 표현입니다.이 튜토리얼이 도움이 되었습니까?,