sql >> Database >  >> RDS >> Sqlserver

IS NULL versus <> 1 SQL-bit

De reden <> niet werkt, is dat SQL NULL behandelt als onbekend - het weet niet wat NULL zou moeten betekenen, dus het evalueert zowel = en <> op een NULL waarde als UNKNOWN (die wordt behandeld als onwaar in een where-clausule of join-voorwaarde). Lees dit voor meer informatie:Waarom evalueert NULL =NULL naar onwaar in SQL-server .

Als er een index op staat, betekent het gebruik van de ISNULL-functie dat de index niet kan worden gebruikt, dus om ervoor te zorgen dat de query de index kan gebruiken, gebruikt u gewoon OR :

SELECT * 
FROM TableName
WHERE
   bit_column_value IS NULL OR bit_column_value = 0


  1. Oracle - Een bestaande tabel wijzigen om een ​​kolom automatisch te verhogen

  2. mysql dynamische query in opgeslagen procedure

  3. Toon records van twee tabellen naast elkaar die overeenkomen met slechts enkele van de velden

  4. Left Outer Join retourneert niet alle records uit de primaire tabel