知っておくと便利な関数 - NULLIF

知っておくと便利な関数 - NULLIF

今回は知っておくと便利なビルトイン関数のひとつ、 NULLIF についてです。


NULLIF ファンクション

NULLIF ファンクションは、二つの引数を受け取り、一つ目と二つ目の引数が同じ場合は NULL を返し、違う場合は一つ目の引数を返す関数です。

構文は次の通りです。

NULLIF ( [ 1] , [ 2] )

戻り値のデータ型は [値 1] のデータ型になります。


行われる処理は以下の CASE 文と同じです。

CASE 
   WHEN [ 1] = [ 2] 
      THEN NULL
      ELSE [ 1]
END

NULLIF 関数を使って、変数に 'N/A' と入っている時は NULL に変換してみましょう。

DECLARE @InputValue1 VARCHAR(50) = 'ABC',
	@InputValue2 VARCHAR(50) = 'N/A';

SELECT	NULLIF(@InputValue1, 'N/A') AS Value1,
	NULLIF(@InputValue2, 'N/A') AS Value2;

知っておくと便利な関数 - NULLIF 1

@InputValue2 のほうは 'N/A' と等しいので、NULL が返ってきていますね。


次のような感じで、入力の引数に空文字列が入っている場合は NULL に変換してテーブルに保存したいような時にも便利です。

DECLARE @InputValue1 VARCHAR(50) = '';

SET @InputValue1 = NULLIF(@InputValue1, '');

[値 1] と [値 2] のデータ型が違う場合、暗黙的なデータ型の変換が行われて比較されるので、このように変換できない場合はエラーになってしまうのでご注意くださいね!

知っておくと便利な関数 - NULLIF 2

© 2010-2024 SQL Server 入門