nullifとは?初心者にもわかる基本と使い方共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
nullifとは?初心者にもわかる基本と使い方共起語・同意語・対義語も併せて解説!
この記事を書いた人

岡田 康介

名前:岡田 康介(おかだ こうすけ) ニックネーム:コウ、または「こうちゃん」 年齢:28歳 性別:男性 職業:ブロガー(SEOやライフスタイル系を中心に活動) 居住地:東京都(都心のワンルームマンション) 出身地:千葉県船橋市 身長:175cm 血液型:O型 誕生日:1997年4月3日 趣味:カフェ巡り、写真撮影、ランニング、読書(自己啓発やエッセイ)、映画鑑賞、ガジェット収集 性格:ポジティブでフランク、人見知りはしないタイプ。好奇心旺盛で新しいものにすぐ飛びつく性格。計画性がある一方で、思いついたらすぐ行動するフットワークの軽さもある。 1日(平日)のタイムスケジュール 7:00 起床:軽くストレッチして朝のニュースをチェック。ブラックコーヒーで目を覚ます。 7:30 朝ラン:近所の公園を30分ほどランニング。頭をリセットして新しいアイデアを考える時間。 8:30 朝食&SNSチェック:トーストやヨーグルトを食べながら、TwitterやInstagramでトレンドを確認。 9:30 ブログ執筆スタート:カフェに移動してノートPCで記事を書いたり、リサーチを進める。 12:30 昼食:お気に入りのカフェや定食屋でランチ。食事をしながら読書やネタ探し。 14:00 取材・撮影・リサーチ:街歩きをしながら写真を撮ったり、新しいお店を開拓してネタにする。 16:00 執筆&編集作業:帰宅して集中モードで記事を仕上げ、SEOチェックやアイキャッチ作成も行う。 19:00 夕食:自炊か外食。たまに友人と飲みに行って情報交換。 21:00 ブログのアクセス解析・改善点チェック:Googleアナリティクスやサーチコンソールを見て数字を分析。 22:00 映画鑑賞や趣味の時間:Amazonプライムで映画やドラマを楽しむ。 24:00 就寝:明日のアイデアをメモしてから眠りにつく。


はじめに

データベースを使うとき、計算や比較をする場面は日常的にあります。そんなとき nullif という小さな機能が役に立つことがあります。この記事では、nullifとは何かどう使うのかを中学生にもわかる言葉で丁寧に解説します。

nullifとは何か

nullifは SQL というデータベース言語の関数の一つです。二つの式を比較して、もし同じ値だった場合には NULL を返し、そうでなければ最初の式の値をそのまま返します。ここでの NULL は「値が無いこと」を示す特別なものです。

要するに 二つの式が等しいときだけ NULL を返し、そうでなければ最初の式の値を返す機能です。等しいかどうかの判定結果は TRUE か FALSE ではなく NULL でもないことに注意してください。実務ではこの挙動をうまく使うことで計算の安全性を高めることができます。

基本的な使い方

nullif の基本的な書き方はとてもシンプルです。NULLIF(expression1, expression2) のように書き、expression1 と expression2 を比較します。結果は次のようになります。

  • expression1expression2 と等しい場合 → NULL
  • expression1expression2 と等しくない場合 → expression1 の値

注意点として、いずれかの式が NULL の場合の挙動は場合によって異なることがあります。一般には NULL と比較しても TRUE にはならず、結果は expression1 の値になります(この点はデータベース製品ごとに微妙に挙動が異なることがあります)。

実務での具体例

1 行の計算で割り算の分母を安全にしたいときに使うのが代表的な例です。例えば a を b で割るとき、b が 0 のときはエラーになることがあります。<span>a / NULLIF(b, 0) と書くと、b が 0 のときは NULL が返されて計算結果が NULL になります。これによりエラーを防ぐことができます。

別の例として、ある列の値が別の列と同じ場合にその行を特別扱いしたい場合があります。その場合は NULLIF を使って同値を NULL に置き換え、後から COALESCE などと組み合わせてデフォルト値を設定することができます。

わかりやすい具体例と表

以下の表は NULLIF の挙動を直感的に示します。

<th>入力
結果
NULLIF(5, 5)NULL
NULLIF(5, 3)5
NULLIF(NULL, 5)NULL

よくある誤解を解く

誤解1:NULLIF は比較演算子のように使える。
正解:NULLIF は関数であり、比較結果が TRUE になるかどうかではなく、等しい場合 NULL を返します。

誤解2:NULLIF が返す NULL は必ず「欠損値」ではなく「単なる NULL 値」です。計算や集計に影響するので、後続処理での扱いに気をつけましょう。

重要ポイントのまとめ

重要ポイントとして、nullif は「二つの式が等しいとき NULL を返す」「等しくないときは expression1 の値を返す」点をしっかり覚えましょう。これを理解することで、データの前処理や安全な計算に役立ちます。

まとめ

nullif は SQL の中でよく使われる便利な関数です。等しい場合に NULL を返す性質を活かして、割り算の分母の安全対策やデータの前処理、条件付きの値の置換など、さまざまな場面で活躍します。使い方を習得すれば、データベースを扱う際の柔軟性と安全性が高まります。


nullifの同意語

NULLIF
2つの値が等しい場合に NULL を返す SQL の組み込み関数。等しくない場合は最初の値をそのまま返します。主に、比較結果が同じときに NULL を挿入して次の処理での NULL 値を扱いやすくする目的で使われます。
CASE_WHEN_EQUAL_THEN_NULL_ELSE_VALUE
CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END の形で NULLIF の機能を再現する、最も一般的な代替表現です。2つの値を比較し、等しければ NULL、そうでなければ最初の値を返します。
CASE_EXPRESSION_AS_ALTERNATIVE_TO_NULLIF
CASE 式は NULLIF の代替として機能します。複数条件の判定にも対応でき、同様の結果を得ることができます。
CONDITIONAL_NULL_RETURN_EXPRESSION
条件付きで NULL を返す表現の総称です。一般に、2値の比較結果に応じて NULL を返す設計思想を指します。
EQUALS_COMPARISON_NULL_RETURN_CONCEPT
等価チェックに基づき NULL を返す動作を指す概念名。等しい場合 NULL、そうでなければ元の値を返すという挙動を意味します。

nullifの対義語・反対語

IFNULL
第一引数が NULL の場合、第二引数を返します。NULLIF が NULL を返す状況とは“逆の動き”に近い機能です。
ISNULL
SQL Server などで使われる同様の機能。第一引数が NULL の場合、第二引数を返します。
NVL
Oracle の NULL 値置換関数。第一引数が NULL の場合、第二引数を返します。
COALESCE
最初の非 NULL 値を返す。複数の引数のうち、先頭の NULL でない値を返し、全部 NULL なら NULL を返します。NULLIF の結果を回避する“補完”の考え方です。
CASE_ELSE_DEFAULT
CASE 式を使い、条件に応じて値を返す。NULL の場合にデフォルト値を返すように書くと、NULL になってしまう場面を避けられます(実務的な対義の使い方)。
IS_NOT_NULL
値が NULL でないことを判定する表現。NULLIF の結果が NULL のときと対照的に、値を常に使える状態を作ります。
IS_NOT_DISTINCT_FROM
NULL を含む場合でも“等しい”と見なす比較演算子。NULLIF の“NULL を返す”挙動とは異なり、 NULL 同士も比較で意味を持たせる考え方です。
DEFAULT_VALUE_FALLBACK
NULL のときデフォルト値へ置換する考え方。COALESCE などと組み合わせると、より強力に“NULLを避ける”実装になります。

nullifの共起語

NULL
SQLにおける値が未知/欠損/未設定の特別な値。NULLIFの結果がNULLになる主な原因にもなる。
COALESCE
NULLを含む複数の式の中から、最初にNULLでない値を返す関数。NULLIFと組み合わせて「NULLを避ける」場面でよく使われる。
IFNULL
NULLを別の値に置換する関数。主に MySQL などで使われ、NULLIFと組み合わせてNULLの扱いを整えることがある。
NVL
Oracleで使われるNULL置換関数(COALESCEのデータベース別実装の一つ)。
IS NULL
式がNULLかどうかを判定する条件式。WHERE句やCASE節で頻繁に用いられる。
IS NOT NULL
式がNULLでないことを判定する条件式。NULLの排除に使われる。
CASE
条件に応じて異なる値を返す制御構文。NULLIFの結果がNULLのときの代替処理にも利用されることがある。
WHEN
CASE文の分岐条件の一部。
THEN
CASE文における条件成立時の返り値。
ELSE
CASE文で他の条件が成立しない場合の返り値。
PostgreSQL
PostgreSQLデータベースでのNULL処理・NULLIFの挙動が代表的に見られる環境。
MySQL
MySQLデータベースで使われるNULL処理関数(例: IFNULL)が身近な環境。
Oracle
OracleデータベースでのNULL処理(NVLなど)が代表的。
SQL
データベースを操作する標準言語。NULLIFはSQLの関数の一つ。
SELECT
データを取得するSQL文。NULLIFはSELECTの計算式としてよく使われる。
WHERE
データの絞り込み条件を指定する句。NULLIFの結果を条件に活用する場面が多い。
引数
NULLIFは2つの式を引数として受け取る
計算や参照の単位。NULLIFの引数は式で成り立つ。
比較
2つの式の等価比較を行うのがNULLIFの核心要素。
等しい
2つの式が等しい場合にNULLを返す点が特徴。
返り値
NULLIFの実行結果として返される値。
デフォルト値
NULLが返る場合の代替としてCOALESCE等で設定する値のこと。
データベース
データを格納・管理するシステム。NULLの扱いはDB設計で重要。
データ整合性
NULLの扱いを正しく設計することでデータ品質を保つ。

nullifの関連用語

NULLIF
二つの式が等しい場合に NULL を返し、そうでなければ最初の式の値を返す、SQL の関数。NULL の扱いをシンプルにして、NULL の生成を伴う演算を回避するのに使われます。
COALESCE
引数の中で最初に NULL でない値を返す関数。すべて NULL のときは NULL。複数の式を順番に評価して NULL を回避したい場合や、デフォルト値の設定によく使われます。
IFNULL
二引数の関数で、最初の引数が NULL でなければそれを、NULL なら二番目の引数を返します。主に MySQL などで使われ、COALESCE の二引数版として覚えると良いです。
IS NULL
式が NULL であるかを判定する条件。例: SELECT * FROM テーブル WHERE カラム IS NULL。
IS NOT NULL
式が NULL でないことを判定する条件。例: SELECT * FROM テーブル WHERE カラム IS NOT NULL。
CASE
条件に応じて値を返す式。CASE WHEN 条件 THEN 値1 ELSE 値2 END の形で使い、NULLIF の結果を分岐に利用する場面などで活用します。
IIF
SQL Server などで使われる CASE の短いき方。条件が真なら第一の値、偽なら第二の値を返します。
NVL
Oracle で使われる NULL 値置換関数。第一引数が NULL なら第二引数を、そうでなければ第一引数を返します。
NVL2
Oracle の拡張関数。第一引数が NULL かどうかで、第二引数と第三引数のどちらを返すかを選択します。
NULL-safe 等価
NULL を含む比較を「等価」とみなす考え方。通常 NULL は比較結果が UNKNOWN になりますが、NULL-safe な比較では NULL 同士も等しいと扱う場合があります。
MySQL の NULL 安全等価演算子 (<=>)
演算子 <=> を使うと、左右どちらかが NULL の場合でも NULL かどうかを判定できます。NULL を含む場合の比較で便利です。
NOT NULL
列の値が NULL にならないようにする制約。データの必須性を表現します。
DEFAULT
列のデフォルト値の設定。INSERT で値を省略した場合や NULL を指定した場合に自動的に適用される値です。
三値論理
SQL が採用する TRUE / FALSE / UNKNOWN の三つの値の論理。NULL は通常 UNKNOWN を表します。
NULL 値
値が「未知」または「存在しない」状態を表す特別な値。NULL は空白やゼロとは異なり、値が欠落していることを示します。
IS NOT DISTINCT FROM
PostgreSQL などで使われる、NULL を含む比較を等価とみなす構文。NULL 同士も等しいと判断します。
IS DISTINCT FROM
IS NOT DISTINCT FROM の反対。NULL を含む場合の非等価を判断します。

nullifのおすすめ参考サイト


インターネット・コンピュータの人気記事

loginとは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
2363viws
pin番号・とは?初心者にも分かるPINの基本と使い方共起語・同意語・対義語も併せて解説!
1982viws
紙送り・とは?初心者が知っておくべき基本と身近な例共起語・同意語・対義語も併せて解説!
1579viws
7-zipとは?初心者でもわかる使い方と特徴を徹底解説共起語・同意語・対義語も併せて解説!
1333viws
アドレスバーとは?初心者のための基本解説と使い方ガイド共起語・同意語・対義語も併せて解説!
1166viws
otg機能とは?初心者が知っておくべき基本と実践ガイド共起語・同意語・対義語も併せて解説!
1131viws
重み付け・とは?初心者にも分かる基礎解説と実例共起語・同意語・対義語も併せて解説!
916viws
yyyy/mm/dd・とは?初心者にもわかる日付表記の基本と使い方共起語・同意語・対義語も併せて解説!
905viws
lpips・とは?初心者のためのやさしい解説と使い方ガイド共起語・同意語・対義語も併せて解説!
901viws
ソフトウェアセンター・とは?初心者が知っておく使い方と選び方共起語・同意語・対義語も併せて解説!
872viws
トグルボタンとは?初心者のための基本と使い方ガイド共起語・同意語・対義語も併せて解説!
868viws
みずほダイレクトとは?初心者でも分かる使い方と特徴をやさしく解説共起語・同意語・対義語も併せて解説!
845viws
fr-4とは?初心者向けにやさしく解説するPCB材料の基本共起語・同意語・対義語も併せて解説!
833viws
印刷キュー・とは?初心者にも分かる印刷キューの基本と使い方共起語・同意語・対義語も併せて解説!
796viws
facebook・とは?初心者向け完全ガイド:基本と使い方をわかりやすく解説共起語・同意語・対義語も併せて解説!
763viws
モバイルバッテリーとは?初心者が知っておく基本と選び方ガイド共起語・同意語・対義語も併せて解説!
757viws
オンラインメディア・とは?初心者が知っておくべき基礎と活用術共起語・同意語・対義語も併せて解説!
748viws
パッチパネル・とは?初心者でも分かる仕組みと役割をやさしく解説共起語・同意語・対義語も併せて解説!
720viws
fonts.gstatic.comとは?初心者にもわかる使い方と役割をやさしく解説共起語・同意語・対義語も併せて解説!
687viws
qgisとは?初心者が知っておくべき地理情報システムの入門ガイド共起語・同意語・対義語も併せて解説!
658viws

新着記事

インターネット・コンピュータの関連記事