- Home ›
- SQLite入門 ›
- SQLite関数の使い方
指定した値と等しければNULLを返す(nullif関数)
nullif 関数を使うと2つの引数の値を比較し、等しければ NULL を返し等しくなければ1番目の引数の値を返します。ここでは SQLite における nullif 関数の使い方について解説します。
(Last modified: )
目次
nullif関数の使い方
nullif 関数は2つの値を比較し、同じであれば NULL を返し異なっていれば最初の値を返します。書式は次の通りです。
nullif(値1, 値2)
1 番目の引数の値を 2 番目の引数と比較して同じだったら NULL に置き換えたい場合に使用します。例えば 2 番目の引数に 0 を指定して、 0 と等しい場合は NULL にしたい場合などによく使用されるようです。
-- --
それでは実際に試してみます。次のようなテーブルを作成しました。
create table tokuten(name text, point integer);
INSERT 文を使って次のようなデータを格納してあります。
insert into tokuten values('Yamada', 84); insert into tokuten values('Suzuki', 73); insert into tokuten values('Hori', -1); insert into tokuten values('Endou', 91);
ここで avg 関数を使って point カラムの値の平均を取得してみます。 下記のように平均を取った場合は (84 + 73 - 1 + 91) ÷ 4 = 61.75 となります。
select avg(point) from tokuten;
数値が -1 のカラムは何らかの理由で除外したい場合だった場合、 nullif 関数を使いカラムの値が -1 だった場合には NULL に変換してから平均を取得してみます。 avg 関数では NULL の値は除外して計算するので、下記のように平均を取った場合は (84 + 73 + 91) ÷ 3 = 82.66 となります。
select avg(nullif(point, -1)) from tokuten;
このように特定の値と等しい場合に NULL に置き換えたい場合に利用します。
-- --
nullif 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。