ホームページ  >  記事  >  データベース  >  Oracle の nvl() および nvl2() 関数の例の詳細な説明

Oracle の nvl() および nvl2() 関数の例の詳細な説明

WBOY
WBOY転載
2022-08-15 18:35:182560ブラウズ

この記事では、Oracle に関する関連知識を提供します。NVL 関数の機能は、NULL 値を変換し、最初の式の値が NULL かどうかに基づいて応答を返すことです。列名または以下の記事では、Oracle の nvl() 関数と nvl2() 関数に関する関連情報を中心に紹介しますので、ご参考になれば幸いです。

Oracle の nvl() および nvl2() 関数の例の詳細な説明

推奨チュートリアル: 「Oracle ビデオ チュートリアル

Oracle の nvl() および nvl2() 関数の詳細な説明:

  • Function nvl(expression1,expression2) は、パラメーター 1 が null かどうかに基づいてパラメーター 1 またはパラメーター 2 の値を返します。
  • Function nvl2(expression1,expression2,expression3) は、次の条件に基づいて返します。パラメータ 1 が null かどうか パラメータ 2 またはパラメータ 3 の値。
#1.nvl: パラメータ 1 が null かどうかに応じて、パラメータ 1 またはパラメータ 2 の値を返します。

[関数形式]: nvl(expression1,expression2)

[関数の説明]:

    expression1 の値が null の場合、関数は式 2 を返します;
  • expression1 の値が null でない場合、関数は式 1 を返します。
  • # #expression1 とexpression2 の値が両方とも null の場合、この関数は null を返します。
  • [特記事項]: パラメータexpression1とexpression2は文字型、数値型、または日付型のいずれかになりますが、パラメータexpression1とexpression2の型は一致している必要があります。

[表示例 1]:expression1 の値は 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]:expression1 の値が 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]:expression1 とexpression2 の値は両方とも 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(式1,式2,式3)

#[関数説明]:

expression1 の値が null でない場合、関数はexpression2 の値を返します。

expression1 の値が null の場合、関数はexpression3 の値を返します。
  • expression1 の値が null の場合、関数はexpression3 の値を返します。 、expression2、およびexpression3の値がすべてnullの場合、関数はnullを返します。
  • [特記事項]:
expression1 の型は、expression2 およびexpression3 の型と一致している必要はありません。式 2 と式 3 は可能な限り一致している必要があります。一致しています。そうでない場合、式 1 が null の場合、式 3 は式 2 の型に自動的に変換されます。2 つのデータ型を変換できない場合は、エラーが報告されます。

    [表示例 1]:expression1 の値が null ではありません:
  • expression2 とexpression3 は両方とも文字型です:
  • 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 とexpression3 は両方とも数値型です:
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 とexpression3 のデータ型が一致していません:

注: 現時点では、expression1 には値があるため、関数は、expression3 の型が異なっていても、expression2 の値を直接返します。式 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]:expression1 の値が null:

expression2 とexpression3 はどちらも文字型です:

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

expression2 とexpression3 は両方とも数値型です:

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

式 2 と式 3 のデータ型が一致していません:

注: 現時点では、式 1 の値は null であるため、関数は式 3 の値を返します。式 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]:expression1 が null、expression2 またはexpression3 の値が 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。