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

条件が<>trueの場合にPostgreSQLがnull値を返さないのはなぜですか

    すべて 中途半端なRDBMSも同じように機能します。これは、正しいからです。 。
    ここでPostgresのマニュアルを引用しています:

    通常の比較演算子は、いずれかの入力がnullの場合、null( "unknown"を意味する)、nottrueまたはfalseを生成します。たとえば、7 = NULL 7 <> NULLと同様に、yieldsnull 。この動作が適切でない場合は、IS [ NOT ] DISTINCT FROMを使用してください 構成:

    expression IS DISTINCT FROM expression
    expression IS NOT DISTINCT FROM expression
    

    これらの式の実行は、単純なexpression <> expressionよりも少し遅いことに注意してください。 比較。

    booleanの場合 値は、より単純なIS NOT [TRUE | FALSE]
    2番目のクエリで期待したものを取得するには、次のように記述します。

    SELECT * FROM table WHERE avalue IS NOT TRUE;

    SQLフィドル。



    1. SQL ServerのIDから列の名前を取得します:COL_NAME()

    2. コマンドラインインターフェイス(CLI)を使用してMySQLデータベースを作成する方法

    3. ADODFCMPユーティリティ

    4. MySQLでタスクマネージャのデータベースを設計するためのガイド