【ハンズオン】SQLのNVL関数とは?概要や使い方を丁寧に説明!
  • facebookページ
  • twitterページ
  • 2019.11.15

    【ハンズオン】SQLのNVL関数とは?概要や使い方を丁寧に説明!

    SQL文のNVL関数をはじめて聞く人もいるかもしれません。メジャーな関数と比べると登場するシーンは少ないのですが、知っておくと意外と便利な関数なのです。

    今回の記事では、SQL文のNVL関数の概要について丁寧に説明をしつつ、NVL関数の使い方や実際に手を動かしてNVL関数を体験できるハンズオンをご紹介していきます。

    SQL文のNVL関数とは?

    SQL文のNVL関数とは、NULL値を他の値に置き換えることができる関数です。

    データベース上に作成したテーブルにおいてNULL値が登録された場合、そのまま「NULL」と表示されます。自分だけでデータベースを使用するのであれば、そのままでも問題はありませんが、場合によっては第三者の目に触れることもあるでしょう。

    データベースに対して知見のある人であれば、「NULL」と書かれていることで「値がNULLなのだ」と理解できますが、知見がない人の場合、理解することができません。

    そのような場合、「NULL」を「値が入っていません」などの文言に置き換えてあげれば、ユーザー目線としては分かりやすい表示となります。

    上記で説明したシチュエーションのように、「NULL」の値を他の値に置き換えることができるのがNVL関数なのです。

    ポテパンダの一言メモ

    ちなみにNVL関数は、関係データベース管理システム(RDBMS)の中でもOracleでしか使用することができません。ただ、他の関係データベース管理システム、例えばMySQLなどでは「ifnull」関数など、NVL関数と同様の役割を果たす関数があります。普段Oracleを使用していないという人は、これを機にOracleを使ってみるか、使い慣れた関係データベース管理システムにおいてNVL関数と同様の役割を果たす関数を使用してみるといいでしょう。

    SQL文 NVL関数の構文

    NVL関数の構文は以下のような形式です。

    NVL関数の構文

    SELECT文については普段から使用している人が多いはずです。そのSELECT文の中で抜き出すカラム名をNVL関数で囲むことで、NULL値を他の値に置き換えることができるのですね。

    SELECT文

    このようにNVL関数の構文とSELECT文を比べてみると、カラム名の部分をそのままNVL関数で囲んでいるだけだということが分かります。

    NVL関数に置き換わる関数

    先ほど「他の関係データベース管理システムにもNVL関数と同様の役割を果たす関数がある」と述べました。実際に、どのような関数があるのか確認していきましょう。

    MySQL:IFNULL

    MySQLではIFNULL関数を用いて、NULLの値を置き換えることができます。第一引数にはNULLかどうかを判定するカラム名を設定し、第二引数にはNULLの場合に置き換える値を設定します。

    PostgreSQL:COALESCE

    PostgleSQLでは、COALESCE関数を用いて、NULLの値を置き換えることができます。第一引数にはNULLかどうかを判定するカラム名を設定し、第二引数にはNULLの場合に置き換える値を設定します。

    SQLserver:ISNULL

    SQLserverでは、ISNULL関数を用いて、NULLの値を置き換えることができます。第一引数にはNULLかどうかを判定するカラム名を設定し、第二引数にはNULLの場合に置き換える値を設定します。

    SQL文 NVL関数を使ってみよう!

    それでは早速、NVL関数を使ってみましょう。Oracleを使用できる方は、ぜひ手を動かしてNVL関数の動きを確かめてみてください。また、それ以外の関係データベース管理システムを使用している方は、上記で紹介したNVL関数に置き換わる関数を使用してみましょう。

    テーブルの作成

    まずは今回のハンズオンで使用するテーブルとその中身を作成しましょう。

    これで以下のようなテーブルが作成されました。

    SELECT * FROM foods;

    NULLを他の値に置き換える

    では、NVL関数を使ってNULL値を他の値に置き換えてみましょう。

    出力結果

    もちろんNVL関数の第一引数を変更すれば、他のカラムのNULLを置き換えることができます。

    出力結果

    まとめ

    今回の記事では、SQL文のNVL関数の概要について丁寧に説明をしつつ、NVL関数の使い方や実際に手を動かしてNVL関数を体験できるハンズオンをご紹介していきました。

    自分だけでデータベースを使用している場合には構いませんが、第三者が閲覧する場合にはNULL値を分かりやすい値へ置き換えてあげると丁寧です。ぜひ今回の記事を良い機会にして、SQL文のNVL関数を活用してみてくださいね!

    【関連記事】
    ▶︎【実践編】SQLのIF構文で関数を作ってみよう!基礎的な使い方も解説!
    ▶︎SQLの達人への第一歩、結合と抽出を同時に処理するINNER JOINの使い方をマスターしよう
    ▶︎SQL order byでソート指定するサンプルコード集 指定のレコードだけ先頭に並べるには?


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE

    ポテパンおすすめ案件