Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL nie wyświetla wartości null w zapytaniu nie równa się?

W kilku językach NULL jest obsługiwane inaczej:Większość ludzi wie o logice dwuwartościowej, gdzie true i false są jedynymi porównywalnymi wartościami w wyrażeniach logicznych (nawet jeśli fałsz jest definiowany jako 0, a prawda jak cokolwiek innego).

W standardowym SQL musisz myśleć o logice trójwartościowej. NULL nie jest traktowany jako wartość rzeczywista, można go raczej nazwać „nieznanym”. Więc jeśli wartość jest nieznana, nie jest jasne, czy w twoim przypadku state wynosi 0, 1 lub cokolwiek innego. Więc NULL != 1 wyniki do NULL ponownie.

To kończy się, że gdziekolwiek odfiltrujesz coś, co może mieć wartość NULL, musisz sam traktować wartości NULL. Zauważ, że składnia również jest inna:wartości NULL można porównać tylko z x IS NULL zamiast x = NULL . Zobacz Wikipedię, aby zobaczyć tabelę prawdy przedstawiającą wyniki operacji logicznych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odwołaj się do tabeli w innym schemacie, pomijając nazwę schematu

  2. Oracle UTL_FILE odczytuje wiersze pliku CSV

  3. Oracle INSERT do dwóch tabel w jednym zapytaniu

  4. Podzapytania rekurencyjne z sortowaniem

  5. Odtwórz uszkodzony węzeł RAC