sql >> Databasteknik >  >> RDS >> Sqlserver

ÄR NULL kontra <> 1 SQL-bit

Anledningen <> inte fungerar är att SQL behandlar NULL som okänd - den vet inte vad NULL antas betyda, så det utvärderar både = och <> på en NULL värde som OKKEN (vilket behandlas som falskt i en where-klausul eller join-villkor). För mer information, läs detta:Varför utvärderas NULL =NULL till falskt i SQL-servern .

Om det finns ett index på den, kommer användningen av ISNULL-funktionen att innebära att indexet inte kan användas, så för att se till att frågan kan använda indexet, använd bara ELLER :

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


  1. Skillnad mellan två oordnade avgränsade listor (Oracle)

  2. Kan inte se Oracle Data Provider för .NET i Visual Studio 2012 RC

  3. Skapa SQL Server-jobb automatiskt

  4. Hur återanvänder man auto_increment-värden?