【実践編】SQLのIF構文で関数を作ってみよう!基礎的な使い方も解説!
  • facebookページ
  • twitterページ
  • 2019.11.06

    【実践編】SQLのIF構文で関数を作ってみよう!基礎的な使い方も解説!

    SQLで関数を作成する際には知っておきたいSQLのIF構文。今回の記事では、実践的に使用できる関数の作成を通して、SQLのIF構文の使用方法を理解できるようにしていきましょう。

    まだSQLのIF構文を使用したことがない方に向けても、手を動かして使い方を理解できるコードをご紹介していきます。それでは早速見ていきましょう。

    本記事の要点
    • SQLのIF構文の概要
    • IF構文の基本的な使い方
    • IF構文を使った関数の作成

    SQLのIF構文とは?

    SQLのIF構文とは、「もしAなら〇〇を実行する。もしBなら△△を実行する。」という条件式を作れる構文のことです。MySQLのIF構文では、以下のような形式で条件式を作成することができます。

    上記の場合、条件式1がtrue(真)の場合には、実行処理1を行います。条件式2がtrue(真)の場合には、実行処理2を行います。そのどちらにも当てはまらない場合には、結果がfalseとなり、実行処理3が行われます。

    また、条件式を列挙するはじめと終わりに「IF」と「END IF」を設置する決まりがあります。このように決まり切った書き方が定められているため、IF構文と呼ばれているのです。

    SQLのIF構文を使用することによって、「もし時間が『朝』の場合には『おはよう』を、『昼』の場合には『こんにちは』を、そして『夜』の場合には『こんばんは』を出力する」といったことが可能となります。

    最初に示したIF構文には「ELSE IF」がありましたが、不要な場合には以下のようにIF構文を記述することもできます。

    逆に複数の条件式を記述したい場合には、以下のように記述することができます。

    条件式を作成する際に、柔軟に「ELSE IF」の数を変えることができることを覚えておきましょう。

    ポテパンダの一言メモ

    今回の記事では、SQLのIF構文の説明に「MySQL」を用いています。関係データベース管理システム(RDBMS)には、他にも「PostgreSQL」や「Firebird SQL」などがあります。それぞれでIF構文の形が若干異なりますので、MySQL以外のRDBMSを使用する際には、公式ドキュメントを参考にしてみましょう。

    【関連記事】
    ▶︎MySQLとは?MySQLの基本から他のデータベースとの違いと優位性を解説!
    ▶︎MySQLやPostgreSQLをお使いの方へおススメ!Amazon Aurora
    ▶︎SQLとはどういうもの? 独自拡張と標準SQLの大きな違いって、何?

    SQLのIF構文の基本的な使用方法

    それでは、早速手を動かしながらSQLのIF構文を用いて基本的な使い方を覚えていきましょう。

    IF文だけのシンプルな条件式

    まずはIF文だけを使用したシンプルな条件式を使ってみましょう。

    以下が出力結果です。

    上記のIF文は「もし500が1000未満であればYESを出力する。そうでなければNOを出力する」という意味となります。上記で見たSQLのIF構文とは形が異なりますが、このような書き方も可能です。

    IF文内で関数を使用する条件式

    次に>IF文内で関数を使用する条件式を使ってみましょう。

    以下が出力結果です。

    上記のIF文では、STRCMPという2つの要素を比較する関数を使用しています。この関数とIF文を用いることで「もし1000が100より大きければBIGを出力する。そうでなければSMALLを出力する」という条件式を記述することができます。

    SQLのIF構文を使って関数を作ってみよう

    最後にSQLのIF構文を使用した関数を実際に作成してみましょう。こちらでは「引数に入れた数字が10より大きいか少ないか、もしくは数字以外かを見分ける関数」を作成していきます。

    まずは関数を作成するところからはじめます。

    では、実際に上記の関数を実行してみましょう。

    関数で設定した通り、IF構文が出力結果を出し分けてくれていることが分かりますね。このようにIF文を関数で使用すると、自分専用の便利な関数を作成することができるはずです。

    まとめ

    今回の記事では、SQLのIF構文の基礎的な学習から始まり、実践的に使用できる関数の作成を通して、SQLのIF構文の使用方法を理解してきました。IF構文を積極的に活用することで、便利な関数を作成できるだけでなく、複雑な条件分岐も簡単に処理できるようになります。ぜひ、今回の記事を機会に、SQL文の中でIF構文を扱っていきましょう。

    【関連記事】
    ▶︎SQL if文のサンプルコード集 NULL判定や、Switch文のような分岐をする方法
    ▶︎【実例で学ぶ】SQL「UPDATE」文の使い方 基礎・応用編


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

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

    ポテパンフリーランス

    ポテパンフリーランス

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

    ポテパンキャリア

    ポテパンキャリア

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

    ポテパンキャンプ

    ポテパンキャンプ

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



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

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

    この記事をシェア

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









    ABOUT US

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

    READ MORE

    ポテパンおすすめ案件