SQLiteでは、coalesce()
関数は、最初のNULL以外の引数のコピーを返します。すべての引数がNULLの場合は、NULLを返します。
ifnull()
に似ています 関数、ただしcoalesce()
3つ以上の引数を受け入れます(ifnull()
2つの引数のみを受け入れます)。
構文
構文は次のようになります:
coalesce(X,Y,...)
これが意味するのは、2つ以上の引数を提供できるということです。次に、関数はNULLではない最初の関数を返します。
例
実例を示します。
SELECT coalesce(NULL,1);
結果:
1
ここでは、2つの引数とcoalesce()
を提供しました NULL以外の最初の値を返しました。この場合は1 。
その他の例
coalesce()
の方法を示すためのバリエーションをさらに示します。 それぞれのケースを処理します。
.mode line
SELECT
coalesce(NULL,NULL,1,2,3),
coalesce(1,NULL,2,3),
coalesce(NULL,3,2,1),
coalesce(1,2,3,NULL),
coalesce(NULL,NULL);
結果:
coalesce(NULL,NULL,1,2,3) = 1 coalesce(1,NULL,2,3) = 1 coalesce(NULL,3,2,1) = 3 coalesce(1,2,3,NULL) = 1 coalesce(NULL,NULL) =
ですから、それは非常に簡単です。提供されている引数の数に関係なく、NULLではない最初の引数を返すだけです。
また、すべての引数がNULLの場合、NULLを返すことに注意してください。
データベースの例
coalesce()
の使用例を次に示します。 データベースクエリで機能します。
.mode column
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
結果:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
coalesce()
を使用しない場合の外観は次のとおりです。 機能:
.mode column
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
結果:
CustomerId Fax ---------- ------------------ 1 +55 (12) 3923-5566 2 3 4 5 +420 2 4172 5555
したがって、coalesce()
関数は、NULLの代わりに意味のある文字列を返すのに役立ちます。
3つの引数付き
3番目の引数を追加する例を次に示します。これにより、NULLに到達する前に複数のオプションを実行できます。
SELECT
CustomerId,
coalesce(Fax, Email, 'N/A') AS "Fax/Email"
FROM Customer
LIMIT 5;
結果:
CustomerId Fax/Email ---------- ---------------------- 1 +55 (12) 3923-5566 2 [email protected] 3 [email protected] 4 [email protected] 5 +420 2 4172 5555