株式会社システムインテグレータホームTOPSICブログSQL‐BOOTCAMPSQLの便利な関数(NULLIF、IIF)を使ってみよう!今回の初心者訓練所#20は、前回に引き続きNULL値に関連したNULLIF関数と、CASE句と同様の使い方ができるIIF関数について説明していきます。どちらの関数もSQL文をシンプルに記入することが出来ますので、是非、覚えてください。いつもの「SQLite」を使用して進めていきますので、「SQLite」をインストールしてから読み進めてください。NULLIF関数NULLIF関数は、指定した2つの引数の値を比較して、値が等しければNULLを返し違う場合は初めに指定した引数の値を返します。データ内の特定の値を条件に従って除外する場合などに便利な関数です。構文は以下となります。)初めに、引数に直接値を入力して確認してみましょう。);最初のSELECT文は引数が同じ値なので、NULLが返され、2番目のSELECT文は引数の値が違うため、初めの引数の値「A」が返されていることが確認できます。それでは、実際のデータを利用して確認するために、確認用の商品テーブル(tbl_item)を作成してデータを挿入してみましょう。values('1','BANANA','0'),('2','APPLE','100'),('3','ORANGE','200'),('4','GRAPE','200'),('5','PEAR','300'),('6','PERSIMMON','400'),('7','STRAWBERRY','100'),('8','MELON','100');出力フォーマットを調整して、SELECT文で登録内容を確認してみましょう。tbl_item;insert文で作成した8件のデータを確認できます。それでは、作成したデータを使用して商品単価(unit_price)の平均を求めてみましょう。NULLIF関数を使用して商品単価がゼロのデータは対象外とした値も合わせて表示してみます。以下のSELECT文で確認してみましょう。0のデータを対象外にして平均値を計算していることが確認できます。この様に特定の値を対象外にしたい場合等に、NULLIF関数を使用すると簡単に集計することができます。AVG関数はNULL値は集計対象外となるため、上記のように利用することができます。IIF関数IIF関数は、簡単な条件分岐を行える関数になります。初めの引数に条件式Xを指定して、条件式が真ならば項目Yを、偽ならば項目Zを返します。構文は以下となります。)参考までに、上記の構文をCASE句で記述すると以下となります。ENDそれでは、先程作成したテーブル「tbl_item」を使用して確認してみましょう。IIF関数を使用して、商品単価(unit_price)が300以上の場合は「HIGH」を、それ以外の場合は「LOW」表示するSELECT文を試してみましょう。;商品単価が判定されて表示されていることが確認できます。ちなみに、CASE句でも確認してみましょう。;IIF関数と同様の結果になることが確認できます。説明は以上となります。おすすめの学習コンテンツ本記事を読み終わって、さらに学びたい方、次は問題にチャレンジしてみたい方には、以下の無料コンテンツをご用意しておりますので、ぜひ活用してみてください!SQLiteについて・本記事で使用したデータベース「SQLite」について解説する資料です。NEW!!SQL無料トライアルテスト・TOPSIC-SQLの無料トライアルテストをご受験していただけます。TOPSIC-SQL無料トライアルテストSQLコンテスト・簡単な会員登録をするだけでSQLのオンラインコンテストに無料で参加できます。過去に開催されたコンテストの問題にもチャレンジできます。CONTESTSQL基礎解説YouTube・「TOPSIC-SQL」を元にしたオンラインウェビナーです。ビッグデータ時代の必須科目SQLを学ぶ「実戦で通用する武器を身につけよう!」あとがき「初心者訓練所」の第20弾では、SQL文をシンプルに記述できる、覚えておくと便利な2つの関数を説明してきました。説明した以外の利用方法も沢山ありますので、実際に色々試してみて使い方をマスターしてください。この記事が、皆さんの日常的なデータベース操作の効率化に繋がれば幸いです。POST関連記事SQLの整形:具体的な進め方、ツール活用についても解説します。BY句、HAVING句と組み合わせた使用方法も合わせて解説します。