S-JIS[2024-08-31] 変更履歴

Tsurugi SQL nullif関数

TsurugiSQL関数のnullifのメモ。


概要

nullif関数は、特定の値をnullに変換する関数。
Tsurugi 1.0.0以降。

nullif(値, 比較する値)

具体的には、第1引数と第2引数が等しかったらnullを返し、そうでなかったら第1引数をそのまま返す。

以下の式と同等。

case when 値 = 比較する値 then null else 値 end

create table test (
  value varchar(10)
);

insert into test values('abc'), ('def'), ('error'), (null);
tgsql> select value, nullif(value, 'error') from test order by value;
[value: CHARACTER, @#1: CHARACTER]
[null, null]
[abc, abc]
[def, def]
[error, null]
(4 rows)

0除算するとエラーになるが、nullで割る場合はnullが返るのでエラーにならない、というテクニックがあるらしい。

create table test (
  value1 int,
  value2 int
);

insert into test values(10, 2), (10, 0);
tgsql> select *, value1 / nullif(value2, 0) from test;
[value1: INT4, value2: INT4, @#2: INT4]
[10, 2, 5]
[10, 0, null]
(2 rows)

Tsurugi SQL関数へ戻る / Tsurugi SQLへ戻る / Tsurugiへ戻る / 技術メモへ戻る
メールの送信先:ひしだま