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

PostgreSQLが範囲タイプのNULL境界を無限境界とは異なると見なすのはなぜですか?

    しかし、そうではありません。 NULL 構文の利便性です 範囲の境界として使用される場合、-infinity /infinity 実際のです 範囲のドメインで。抽象値は、他のどの値よりも小さい/大きいことを意味しますが、 それでも(含めることも除外することもできます)。

    また、NULL すべてで機能します 範囲タイプ。ほとんどのデータタイプには、-infinityのような特別な値はありません。 /infinityintegerを取る およびint4range たとえば。

    理解を深めるために、pgsql-generalのa_horseが提供されました

    すべて データ型はNULLにすることができます 、明示的にNOT NULLであるドメインも 。参照:

    これにはdateが含まれます もちろん(エイドリアンのコメント ):

    test=> SELECT NULL::date, pg_typeof(NULL::date);
     date | pg_typeof 
    ------+-----------
          | date
    (1 row)
    

    しかし、NULLについて議論しようとしています として (範囲の境界として使用される場合)は、そもそも誤解を招くアプローチです。値ではありません。

    繰り返しますが、NULL 範囲のドメイン内の値としては扱われません。これは、「無制限」と言うのに便利な構文として機能します。それ以上ではありません。




    1. OracleSQL-レコードの日付と履歴に基づいてレコードにフラグを立てます

    2. VARCHAR2列のResultSet.getString()は空の文字列を返します

    3. .csvファイルをOracleFormsアプリケーションにインポートする

    4. MySQL-Pythonインストール-eggをビルドできませんでした