SQL道場 変換関数 NULLIF関数

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

対応データベース:SQLServer 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がそのまま戻ります。

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

実行例

社員テーブル

社員名(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を返すサンプル実行結果