2016-03-30 7 views
-2

Ich möchte Zeilen aus der Datenbank auswählen, wo die ArkivDate Null ist.SQL WHERE ist fehlplatziert?

Ich versuchte dies:

SELECT 
    * 
FROM 
    [Bums].[dbo].[Items] 
INNER JOIN 
    [Bums].[dbo].[ItemsArkivFormUsed] ON [Bums].[dbo].[ItemsArkivFormUsed].[ItemNumber] = [Bums].[dbo].[Items].[ItemNumber] 
WHERE 
    [Bums].[dbo].[ItemsArkivFormUsed].[ArkivDate] = null 

Die Abfrage funktioniert, wenn ich die WHERE Klausel zu entfernen, aber wenn ich es schließen, kehrt das Ergebnis leer.

Ich frage mich, habe ich die WHERE verlegt?

Die Tabellen hat einige null ArkivDate aber meine Abfrage nur sie nicht filtern können angezeigt werden

Kann ich mir jemand bitte helfen

+3

WHERE col NULL ist, nicht NULL = – Mihai

+0

Und [Gibt es einen Unterschied zwischen NULL und NULL =] (http://stackoverflow.com/questions/ 3777230/is-there-any-difference-zwischen-ist-null-und-null) – lad2025

+1

Diese Art ist eine der am häufigsten gestellten Fragen. Leute bei SO sollten die Antwort aufpoppen, bevor jemand diese Frage stellen kann :) – SouravA

Antwort

2

NULL ist ein seltsames Tier in SQL, müssen Sie die Syntax verwenden IS NULL statt = NULL, wenn ANSI_NULLS aktiviert ist, was der Standardwert ist.

SELECT * FROM [Bums].[dbo].[Items] 
INNER JOIN [Bums].[dbo].[ItemsArkivFormUsed] 
    ON [Bums].[dbo].[ItemsArkivFormUsed].[ItemNumber] = [Bums].[dbo].[Items].[ItemNumber] 
WHERE [Bums].[dbo].[ItemsArkivFormUsed].[ArkivDate] IS NULL 

Siehe docs auf SET ANS_NULL für weitere Informationen

+0

Danke, es funktioniert jetzt –