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

Oracleがデータベーステーブルの行にNaNを追加するのはいつ/なぜですか

    ドキュメントから

    私の知る限り、NaNはbinary_floatまたはbinary_double 桁;これらのデータ型には、NaNの独自のリテラルもあります is nan 状態 彼らにとっても、 nanvl() 機能 それらを操作します。

    このような値を取得する方法の例は、ゼロのfloat/double値をゼロで除算することです。

    select 0f/0 from dual;
    
    0F/0
    ----
    NaN  
    

    ...したがって、NaNが表示されている場合は、アプリケーションロジックまたは基になるデータが壊れている可能性があります。 (「通常の」数値タイプではこれを取得できないことに注意してください。 ORA-01476:除数はゼロに等しいを取得します。 分子がfloatまたはdoubleでない限り)。

    ただし、ゼロまたは負の数のNaNは取得されません。文字列列があり、アプリケーションが「NaN」という単語を入力している可能性もありますが、数値を文字列として格納することは多くのレベルで悪い考えなので、そうでないことを願っています。



    1. postgresqlの時制DBでの本能的な値の抽出と平均化

    2. MYSQL auto_increment_increment

    3. SQL Server 2008 の PIVOT / UNPIVOT

    4. 文字セットエンコーディングの問題