SQLiteでは、NULLの結果を「N / A」、「None」、さらには「NULL」などのテキストに置き換える必要がある場合は、以下の3つの解決策のいずれかを使用できます。
サンプルデータ
まず、いくつかのNULL値を返すクエリの例を次に示します。
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
結果:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
行2、3、および4のファックスにNULL値が含まれていることに注意してください。 列。
以下の方法を使用して、NULL列に「N/A」が表示されるように結果を変更できます。
ifnull()関数
ifnull()
関数は2つの引数を受け入れ、NULLではない最初の引数を返します。両方の引数がNULLの場合、NULLを返します。
したがって、最初の引数はnull許容である場合とそうでない場合がある値であり、2番目の引数はNULL値を置き換える値である必要があります。
ファックスのどこにでも「N/A」を表示するように前のクエリを変更する方法は次のとおりです。 列がNULLです。
SELECT
CustomerId,
ifnull(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()関数
coalesce()
関数はifnull()
と非常によく似ています 働き。違いは、coalesce()
3つ以上の引数を受け入れます。 NULL以外の最初の引数を返すだけです。
したがって、ifnull()
を使用するのとまったく同じ方法で使用できます。 2つの引数を提供することによって。
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
.nullvalueドットコマンド
SQLiteコマンドラインインターフェイスを使用する場合は、.nullvalue
を使用できます。 dotコマンドを使用すると、クエリを実行するたびに前の関数の1つを使用する必要がなくなります。
このコマンドを使用するときは、NULL値を置き換えるために使用される文字列を指定します。
例:
.nullvalue N/A
これで、NULL値を返すクエリを実行するたびに、文字列「N/A」がそれらのNULL値を置き換えます。
SELECT
CustomerId,
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