その他単一行関数

ORACLEのその他単一行関数のリファレンスです。

※当ページにおいて、検索結果イメージの半角スペースは【_】、NULLは【NULL】と表現しています。

COALESCE

文法
COALESCE(引数1,引数2,…)

戻り値
引数1と同じ型

説明
指定された引数の最初のNULLでない値を戻す
全ての引数がNULLの場合、NULLを戻す

SELECT a
      ,b
      ,c
      ,COALESCE(a,b,c) func
FROM   test_table
;

A     B     C     FUNC
----- ----- ----- -----
ABC   DEF   GHI   ABC
NULL  DEF   GHI   DEF
NULL  NULL  GHI   GHI
NULL  NULL  NULL  NULL

DECODE

文法
DECODE(引数1,引数2,引数3,…)

戻り値
引数3と同じ型

説明
引数1と引数2を比較し一致した場合、引数3を戻す
一致しない場合、引数1と引数4を比較し一致した場合、引数5を戻す
一致しない場合、引数1と引数6を比較し一致した場合、引数7を戻す
以下同様

全て一致しない場合、末尾の引数が偶数番の場合は、末尾の引数の値を戻す
奇数番の場合は、NULLを戻す

引数は最大255個まで指定可能

SELECT a
      ,DECODE(a,'ABC',1,'DEF',2) func1
      ,DECODE(a,'ABC',1,'DEF',2,3) func2
FROM   test_table
;

A     FUNC1 FUNC2
----- ----- -----
ABC       1     1
DEF       2     2
GHI    NULL     3

備考
NULLの比較も可能

SELECT a
      ,DECODE(a,NULL,1,2) func
FROM   test_table
;

A      FUNC
----- -----
ABC       2
NULL      1

GREATEST

文法
GREATEST(引数1,…)

戻り値
引数1と同じ型

説明
指定した引数の中で、最大の値を戻す
引数は最大255個まで指定可能

SELECT a
      ,b
      ,c
      ,GREATEST(a,b,c) func
FROM   test_table
;

    A     B     C  FUNC
----- ----- ----- -----
    1     2     3     3

備考
引数の中にNULLが存在する場合、NULLを戻す

SSELECT a
      ,b
      ,c
      ,GREATEST(a,b,c) func
FROM   test_table
;

    A     B     C  FUNC
----- ----- ----- -----
    1  NULL     3  NULL

LEAST

文法
LEAST(引数1,…)

戻り値
引数1と同じ型

説明
指定した引数の中で、最小の値を戻す
引数は最大255個まで指定可能

SELECT a
      ,b
      ,c
      ,LEAST(a,b,c) func
FROM   test_table
;

    A     B     C  FUNC
----- ----- ----- -----
    1     2     3     1

備考
引数の中にNULLが存在する場合、NULLを戻す

SELECT a
      ,b
      ,c
      ,LEAST(a,b,c) func
FROM   test_table
;

    A     B     C  FUNC
----- ----- ----- -----
    1  NULL     3  NULL

NULLIF

文法
NULLIF(引数1,引数2)

戻り値
引数1と同じ型

説明
引数1と引数2を比較し、同じ場合NULLを戻す
異なる場合は、引数1の値を戻す

SELECT a
      ,b
      ,NULLIF(a,b) func
FROM   test_table
;

    A     B  FUNC
----- ----- -----
    1     2     1
    1     1  NULL

備考
引数1と引数2の型が異なる場合エラーとなる

SELECT NULLIF('ABC',1) func
FROM   test_table
;

ORA-00932: データ型が一致しません: CHARが予想されましたがNUMBERです。

NVL

文法
NVL(引数1,引数2)

戻り値
引数1と同じ型

説明
引数1がNULL以外の場合は、引数1の値を戻す
NULLの場合は、引数2の値を戻す

SELECT a
      ,b
      ,NVL(a,b) func
FROM   test_table
;

    A     B  FUNC
----- ----- -----
    1     2     1
    3  NULL     3
 NULL     6     6

NVL2

文法
NVL2(引数1,引数2,引数3)

戻り値
引数2と同じ型

説明
引数1がNULL以外の場合は、引数2の値を戻す
NULLの場合は、引数3の値を戻す

SELECT a
      ,b
      ,c
      ,NVL2(a,b,c) func
FROM   test_table
;

    A     B     C  FUNC
----- ----- ----- -----
    1     2     3     2
 NULL     5     6     6
タイトルとURLをコピーしました