SQL道場 変換関数 NULLIF関数

最終更新日

SQLで2つの引数が等しい場合にはNULLを返すNULLIF関数について記載しています。

Describes the SQL function NULLIF, which returns NULL if the two arguments are equal.

対応データベース:SQL Server MySQL Oracle PostgreSQL DB2 SQLite

NULLIF関数の文法

SELECT NULLIF(式1,式2) FROM テーブル
SELECT NULLIF (Equation 1, Equation 2) FROM table
引数式1(Formula 1)
式2(Formula 2)
返値式1、式2が等しい場合はNULLが戻ります。
式1、式2が等しくない場合は式1がそのまま戻ります。
If expressions 1 and 2 are equal, NULL is returned.
If expressions 1 and 2 are not equal, expression 1 returns as is.

NULLIF関数は2つの引数が等しい場合にNULLを返します。式1、式2が等しい場合はNULLが戻ります。式1、式2が等しくない場合は式1がそのまま戻ります。

The NULLIF function returns NULL if the two arguments are equal. If expressions 1 and 2 are equal, NULL is returned. If expressions 1 and 2 are not equal, expression 1 is returned unchanged.

実行例

社員テーブル

社員名(EMP_NAME)年齢(EMP_AGE)性別(EMP_SEX)時給(EMP_SALARY)
山田太郎351,000
鈴木花子201,500
竹下次郎302,500
佐藤梅子40800
ジュン鎌田23800
田中誠二202,500

MySQLの実行例

/* MySQL 「社員名」の列の値が「山田太郎」の場合はNULLを返すサンプル */
SELECT EMP_NAME,NULLIF(EMP_NAME,'山田太郎') FROM testdb.MST_EMPLOYEE;
MySQL 「社員名」の列の値が「山田太郎」の場合はNULLを返すサンプル実行結果

SQLServerの実行例

/* SQLServer 「社員名」の列の値が「山田太郎」の場合はNULLを返すサンプル */
SELECT EMP_NAME,NULLIF(EMP_NAME,'山田太郎') FROM [testdb].[dbo].[MST_EMPLOYEE];
SQLServer 「社員名」の列の値が「山田太郎」の場合はNULLを返すサンプル実行結果

すなりん

サイトの管理者「すなりん」です。現役のシステムエンジニアをしてます。要件定義からテスト、プロジェクトマネージャー、顧客調整、社内インフラなんでもこなします。いわゆるフルスタック・エンジニアです。 仕事柄色んな技術や製品を扱うことが多く、なかなか覚えているもの大変ですし、しばらくすると忘れてしまうことが多いので、自分なりの形で技術情報やIT関係の情報を掲載しています。 個人で仕事の合間をみながら記事の投稿やサイトを更新していますので、誤字や間違った内容があったりもしますので、閲覧者はご理解の上ご利用ください。