SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SQL 特殊関数 - 等価判断、最大判断、最小判断、ヌル変換

Oracle 固有の部分があるかもしれません。SQL-Server、MDB では注意のこと。

■等価判断

  ・decode() 関数は、等価条件判断(if 文判定) として使える。
    この例では、受注数が NULL のとき 0 を返し、そうでないとき受注数その
    ものを返す。

  select 品番, decode(受注数, NULL, 0, 受注数) from sak.受注m
    order by 品番
  ;

  ・2 番目、3 番目のパラメタを複数列挙することができる。

    -- C 言語風ケース文イメージコード --
      switch(品番) {
        case 'a001':
          return('TV');
        case 'b002':
          関数...
          return('VTR');
        case 'c003':
          関数...
          return('DVD');
        default:
          return('未定義');
      }
    ------------------------------------

  select 品番, decode(品番, 'a001', 'TV', 'b002', 'VTR', 'c003', 'DVD', '未定義') from sak.受注m
    order by 品番
  ;

■最大判断

  ・greatest() 関数は、最大条件判断(if 判定) として使える。
    この例では、受注数が 0 以下のものは 0 を返し、そうでないとき受注数
    そのものを返す。パラメタは複数指定できる。

  select 品番, greatest(受注数, 0) from sak.受注m
    order by 品番
  ;

■最小判断

  ・least() 関数は、最小条件判断(if 判定) として使える。
    この例では、受注数が 500 以上のものは 500 を返し、そうでないとき受注
    数そのものを返す。パラメタは複数指定できる。

  select 品番, least(受注数, 500) from sak.受注m
    order by 品番
  ;

■ヌル変換

  ・nvl() 関数は、NULL 項目の代替え値指定として使える。
    この例では、受注数が NULL のものは 0 を返し、そうでないとき受注数
    そのものを返す。

  select 品番, nvl(受注数, 0) from sak.受注m
    order by 品番
  ;

■ヌル変換 (Oracle8i 以降)

  ・nvl2() 関数は、データ1 が NULL のときデータ3 を返す。
    データ1 が NULL でなければデータ2 が返る。

  ・次の例は、'def' が返る。

  select nvl2(null, 'abc', 'def') from dual;

  ・次の例は、'abc' が返る。

  select nvl2('012', 'abc', 'def') from dual;

■ヌル判定 (Oracle9i 以降)

  ・coalesce() 関数は、最初の null でないデータを返す。
    これは便利かもしれない。

  ・次の例は、'abc' が返る。

  select coalesce(null, 'abc', 'def') from dual;

■ヌル比較 (Oracle9i 以降)

  ・nullif() 関数は、等しければ null が、等しくなければデータ1 が返る。

  ・次の例は、null が返る。

  select nullif('abc', 'abc') from dual;

  ・次の例は、'abc' が返る。

  select nullif('abc', 'def') from dual;

■SQL 基礎実地編資料
■SQL 基礎編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK