sql >> データベース >  >> RDS >> SQLite

SQLiteでNULLを「N/A」に置き換える3つの方法

    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


    1. PostgreSQLの2つのデータベース間でデータを比較するにはどうすればよいですか?

    2. psycopg2は実際にはデータを挿入していません

    3. 列の平均を計算し、それをOracleの選択クエリに含めるにはどうすればよいですか?

    4. macOSにPostgreSQLをインストールする方法