sql >> Database >  >> RDS >> Oracle

SQL geeft geen null-waarden weer bij een query die niet gelijk is aan?

In verschillende talen wordt NULL anders behandeld:De meeste mensen kennen tweewaardige logica waarbij true en false zijn de enige vergelijkbare waarden in booleaanse uitdrukkingen (zelfs is onwaar wordt gedefinieerd als 0 en waar als iets anders).

In Standard SQL moet je nadenken over driewaardige logica. NULL wordt niet als een echte waarde behandeld, je zou het liever "onbekend" kunnen noemen. Dus als de waarde onbekend is, is het niet duidelijk of in uw geval state is 0, 1 of iets anders. Dus NULL != 1 resultaten naar NULL nogmaals.

Dit concludeert dat waar je ook iets filtert dat NULL kan zijn, je NULL-waarden zelf moet behandelen. Merk op dat de syntaxis ook anders is:NULL-waarden kunnen alleen worden vergeleken met x IS NULL in plaats van x = NULL . Zie Wikipedia voor een waarheidstabel met de resultaten van logische bewerkingen.



  1. Externe sleutel met meerdere kolommen in MySQL?

  2. Hoe databasenaam opvragen in Oracle SQL Developer?

  3. GTT-tabelstatistieken en SYS.WRI$_OPTSTAT_TAB_HISTORY

  4. Hoe kan ik in mijn geval SQL in Oracle schrijven?