>  기사  >  데이터 베이스  >  Oracle의 nvl() 및 nvl2() 함수 예제에 대한 자세한 설명

Oracle의 nvl() 및 nvl2() 함수 예제에 대한 자세한 설명

WBOY
WBOY앞으로
2022-08-15 18:35:182633검색

이 기사에서는 Oracle에 대한 관련 지식을 제공합니다. NVL 함수의 기능은 null 값을 변환하고 첫 번째 표현식의 값이 null인지 여부에 따라 응답 열 이름이나 표현식을 반환하는 것입니다. Oracle의 nvl() 및 nvl2() 함수에 대한 관련 정보가 도움이 되기를 바랍니다.

Oracle의 nvl() 및 nvl2() 함수 예제에 대한 자세한 설명

추천 튜토리얼: "Oracle Video Tutorial"

Oracle의 nvl() 및 nvl2() 함수에 대한 자세한 설명:

  • 함수 nvl(expression1,expression2)은 매개변수 여부에 따라 매개변수 1 또는 매개변수를 반환합니다. 1은 null입니다.
  • 함수 nvl2(expression1,expression2,expression3)는 매개변수 1이 null인지 여부에 따라 매개변수 2 또는 매개변수 3의 값을 반환합니다.

1.nvl: 매개변수 1이 null인지 여부에 따라 매개변수 1 또는 매개변수 2의 값을 반환합니다.

[함수 형식]: nvl(expression1,expression2)

[함수 설명]:

  • 값이
  • expression1의 값이 null이 아니면 함수는expression1을 반환합니다.
  • expression1과 표현식2의 값이 모두 null이면 함수는 null을 반환합니다.

【특별 참고사항】: 매개변수 표현식1과 표현식2는 문자 유형, 숫자 유형 또는 날짜 유형이 될 수 있지만 매개변수 표현식1과 표현식2의 유형은 일관되어야 합니다.

[샘플 디스플레이 1]: 표현식1 값이 null임:

expression2는 문자 유형:

select nvl(null,'ABCD') from dual;        --返回:ABCD
select nvl(null,'abcd') from dual;        --返回:abcd
select nvl(null,'12345') from dual;        --返回:12345

expression2는 숫자 유형:

select nvl(null,12345) from dual;        --返回:12345
select nvl(null,00000) from dual;        --返回:0
select nvl(null,-12345) from dual;        --返回:-12345
select nvl(null,123.45) from dual;        --返回:123.45
select nvl(null,-123.45) from dual;        --返回:-123.45

expression2는 날짜 및 시간 유형:

select nvl(null,sysdate) from dual;        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25 11:54:18','yyyy-mm-dd hh24:mi:ss')) from dual;                        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25','yyyy-mm-dd')) from dual;        --返回:2022/2/25
select nvl(null,to_date('2022','yyyy')) from dual;        --返回:2022/2/1

[샘플 디스플레이 2]: 표현식1 값 아님 null:

expression1은 문자 유형입니다.

select nvl('ABCD','abcd') from dual;        --返回:ABCD
select nvl('abcd','ABCD') from dual;           --返回:abcd
select nvl('12345','54321') from dual;        --返回:12345

expression1은 숫자 유형입니다.

select nvl(12345,null) from dual;        --返回:12345
select nvl(00000,11111) from dual;        --返回:0
select nvl(-12345,null) from dual;        --返回:-12345
select nvl(123.45,-123.45) from dual;        --返回:123.45
select nvl(-123.45,123.45) from dual;        --返回:-123.45

expression1은 날짜 및 시간 유형입니다.

select nvl(sysdate,null) from dual;        --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25 12:18:23','yyyy-mm-dd hh24:mi:ss'),null) from dual;                        --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25','yyyy-mm-dd'),null) from dual;        --返回:2022/2/25
select nvl(to_date('2022','yyyy'),null) from dual;        --返回:2022/2/1

[샘플 표시 3]: 표현식1 및 표현식2 값은 모두 null입니다. :

select nvl(null,null) from dual;        --返回空值
select nvl('',null) from dual;        --返回空值
select nvl(null,'') from dual;        --返回空值
select nvl('','') from dual;        --返回空值

2 .nvl2: 매개변수 1이 null인지 여부에 따라 매개변수 2 또는 매개변수 3의 값을 반환합니다

[함수 형식]: nvl2(expression1,expression2,expression3)

[함수 설명]:

  • If 표현식1의 값이 null이 아니면 이 함수는 표현식2 값을 반환합니다.
  • expression1 값이 null이면 함수는 표현식3 값을 반환합니다.
  • expression1, 표현식2, 표현식3 값이 모두 null이면 함수는 null을 반환합니다.

[특별 참고 사항]:

  • expression1의 유형은 표현식2 및 표현식3의 유형과 일치할 필요가 없습니다.
  • 표현식2와 표현식3의 유형은 일치하지 않는 경우 최대한 일치해야 합니다. 표현식3은 표현식1이 null인 경우 자동으로 변환됩니다. 이는 표현식2의 유형입니다. 두 데이터 유형을 변환할 수 없으면 오류가 보고됩니다.

【예시 1】: 표현식1의 값이 null이 아닙니다.

expression2와 표현식3은 모두 문자 유형입니다.

select nvl2(0,'ABCD','abcd') from dual;        --返回:ABCD
select nvl2('a','ABCD','1234') from dual;        --返回:ABCD
select nvl2(sysdate,'1234','abcd') from dual;        --返回:1234

expression2와 표현식3은 모두 숫자 유형입니다.

select nvl2(0,12345,54321) from dual;        --返回:12345
select nvl2('a',123.45,543.21) from dual;        --返回:123.45
select nvl2(sysdate,-12345,-54321) from dual;        --返回:-12345

expression2와 표현식3 데이터 유형이 일치하지 않습니다.

참고: 이때 표현식1에는 값이 있으므로 함수는 표현식3의 유형을 표현식2의 유형으로 변환할 수 없더라도 오류가 보고되지 않습니다.

select nvl2(0,'ABCD',54321) from dual;        --返回:ABCD
select nvl2('a','abcd',543.21) from dual;        --返回:abcd
select nvl2(sysdate,'12345',-54321) from dual;        --返回:12345

[샘플 디스플레이 2]: 표현식1 값이 null임:

expression2와 표현식3은 모두 문자 유형입니다.

select nvl2(null,'ABCD','abcd') from dual;        --返回:abcd
select nvl2('','ABCD','1234') from dual;        --返回:1234

expression2와 표현식3은 모두 숫자 유형입니다.

select nvl2(null,12345,54321) from dual;        --返回:54321
select nvl2('',123.45,543.21) from dual;        --返回:543.21

expression2와 표현식3 데이터 유형이 일치하지 않습니다.

참고: 이때, 표현식1의 값은 null이므로 함수는 표현식3의 값을 반환하게 됩니다. 표현식3의 유형을 표현식2의 유형으로 변환할 수 없으면 오류가 보고됩니다.

select nvl2(null,'ABCD',54321) from dual;        --返回:54321
select nvl2('','abcd',543.21) from dual;        --返回:543.21
select nvl2('',543.21,'abcd') from dual;        --执行报错
select nvl2(null,'abcd',sysdate) from dual;        --返回:25-2月 -22
select nvl2(null,sysdate,'abcd') from dual;        --执行报错

[샘플 디스플레이 3]: 표현식1이 null이고 표현식2 또는 표현식3 값이 null인 경우:

select nvl2(null,null,'123') from dual;        --返回:123
select nvl2(null,'abc',null) from dual;        --返回:空值
select nvl2(null,null,null) from dual;        --返回:空值
select nvl2('','','') from dual;        --返回:空值

추천 튜토리얼: "Oracle Video Tutorial"

위 내용은 Oracle의 nvl() 및 nvl2() 함수 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제