SQLite ifnull()
関数を使用すると、NULL値を別の値に置き換えることができます。
2つの引数を取り、最初のNULL以外の引数のコピーを返します。両方の引数がNULLの場合はNULLを返します。
ifnull()
関数はcoalesce()
と同等です 2つの引数があります。
簡単な例
コンセプトを示す簡単な例を次に示します。
SELECT
ifnull(123, 0),
ifnull(NULL, 0);
結果:
ifnull(123, 0) ifnull(NULL, 0) -------------- --------------- 123 0
2番目の列はNULLであったため、 0 代わりに返されました。
データベースの例
この例では、ifnull()
を使用しています データベースクエリで。これは、ifnull()
NULL値を含む可能性のあるデータをクエリするときに役立ちます。
次の表を例として取り上げます。
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Stick 89.75 3 Foo Cap 11.99 4 Free Widget 0.0 5 Free Foobar 0.0 6 Free Beer
ほとんどの製品には価格が設定されていますが、無料のビールの価格 NULLです。
これを選択した値に変更できます。
SELECT
ProductName,
ifnull(Price, 0.0)
FROM Products;
結果:
ProductName ifnull(Price, 0.0) ------------- ------------------ Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer 0.0
現在、他の無料製品と同じ価格になっています。
置換値は必ずしも数値である必要はありません。文字列に置き換えることもできます。
SELECT
ProductName,
ifnull(Price, 'FREE!')
FROM Products;
結果:
ProductName ifnull(Price, 'FREE!') ------------- ---------------------- Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer FREE!
両方の引数がNULLの場合
両方の引数がNULLの場合、NULLが返されます。
SELECT ifnull(NULL, NULL);
結果:
ifnull(NULL, NULL) ------------------