PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dlaczego PostgreSQL nie zwraca wartości null, gdy warunek jest <> prawdziwy?

Każdy w połowie przyzwoity RDBMS robi to w ten sam sposób, ponieważ jest poprawny .
Cytuję tutaj podręcznik Postgresa:

Zwykłe operatory porównania dają wartość null (oznaczającą „nieznane”), nottrue lub false, gdy którekolwiek dane wejściowe mają wartość null. Na przykład 7 = NULL yieldsnull, podobnie jak 7 <> NULL . Jeśli to zachowanie nie jest odpowiednie, użyj IS [ NOT ] DISTINCT FROM konstrukcje:

expression IS DISTINCT FROM expression
expression IS NOT DISTINCT FROM expression

Zauważ, że te wyrażenia działają nieco wolniej niż proste expression <> expression porównanie.

Dla boolean wartości istnieje również prostszy IS NOT [TRUE | FALSE] .
Aby uzyskać to, czego oczekiwałeś w drugim zapytaniu, napisz:

SELECT * FROM table WHERE avalue IS NOT TRUE;

Skrzypce SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak skonfigurować HikariCP dla postgresql?

  2. Czy nie używanie NULL w PostgreSQL nadal używa bitmapy NULL w nagłówku?

  3. XMLTABLE w PostgreSQL

  4. Aby zignorować zduplikowane klucze podczas „kopiowania z” w postgresql

  5. Jak określić ostatni dzień poprzedniego miesiąca za pomocą PostgreSQL?