SQLite,nullif を使用してデータの差異を比較する

スポンサーリンク

鍛錬 217

SQLite,nullif を使用してデータの差異を比較し、結果(戻り値)を取得する

SQLite3 で、2つのデータが同じか否かを判定して結果(戻り値)を取得するには、nullif() 関数を使用します。
 
使用方法は、以下に示す通りです。

nullif(パラメータ1, パラメータ2)

 
戻り値

以下は、nullif() 関数を使用した場合の結果(戻り値)です。

比較した結果 戻り値
同じ NULL
異なる パラメータ1

サンプルデータ

以下は、今回使用するサンプルデータです。

sqlite> 
sqlite> select * from fruits;
id   fruits_name   price 
---  ------------  ------
1    apple         300   
2    orange        250   
3    grape         500   
4    banana        350   
5    peach         700

実行結果 (比較したデータが同じ場合)

まずは、以下の通り実行します。

sqlite> 
sqlite> select nullif(fruits_name, 'apple') from fruits where id=1;
nullif(fruits_name, 'apple')
----------------------------
NULL

 
nullif() 関数のパラメータ1について

「id」が 1 の場合 (where id=1) の「fruits_name」は ‘apple’ であるため、パラメータ1には ‘apple’ がセットされます。

nullif() 関数のパラメータ2について

パラメータ2には比較対象として ‘apple’ を指定しています。
 
戻り値

パラメータ1の ‘apple’ とパラメータ2の ‘apple’ は同じであるため、戻り値は NULL となります。

実行結果 (比較したデータが異なる場合)

まずは、以下の通り実行します。

sqlite> 
sqlite> select nullif(fruits_name, 'grape') from fruits where id=1;
nullif(fruits_name, 'grape')
----------------------------
apple

 
nullif() 関数のパラメータ1について

「id」が 1 の場合 (where id=1) の「fruits_name」は ‘apple’ であるため、パラメータ1には ‘apple’ がセットされます。

nullif() 関数のパラメータ2について

パラメータ2には比較対象として ‘grape’ を指定しています。
 
戻り値

パラメータ1の ‘apple’ とパラメータ2の ‘grape’ は異なるため、戻り値は パラメータ1の ‘apple’ となります。

タイトルとURLをコピーしました