2 Stimmen

Warum gibt meine Abfrage Nullwerte zurück, obwohl ich eine NOT NULL-Klausel in meiner Where-Anweisung habe?

Ich versuche, DISTINCT- und NOT NULL-Werte zu erhalten, aber das scheint nicht zu funktionieren:

SELECT DISTINCT ITEM 
FROM TABLE 
WHERE ITEM IS NOT NULL

Dies liefert DISTINCT-Werte, aber auch NULL-Werte.

Probe:

ITEM
a
a
b
b
c
c
NULL

salida:

a
b
c
NULL

4voto

Shrini Punkte 199

Versuchen Sie dies. "IS NOT NULL" und "IS NULL" funktionieren nicht mit leeren Werten. Sie können beide abdecken, wenn die Spalte Leerwerte zulässt.

SELECT 
   DISTINCT item FROM table 
WHERE 
   ISNULL(item,'') <> ''

3voto

gbn Punkte 407102

Diese Anweisung gibt zurück a b c es sei denn, Sie haben die String NULL nicht die symbol in der Spalte:

SELECT DISTINCT ITEM FROM TABLE WHERE ITEM IS NOT NULL

Um dies zu testen, probieren Sie Folgendes aus

--check for
SELECT DISTINCT ITEM FROM TABLE WHERE ITEM = 'NULL'

--modify original query
SELECT DISTINCT ITEM FROM TABLE WHERE NULLIF(ITEM, 'NULL') IS NOT NULL

1voto

Raja Punkte 3570

Prüfen Sie, ob Item vom Typ Varchar ist und Sie den Wert "NULL" darin speichern. Wenn ja, dann versuchen Sie bitte die folgende Abfrage:

select distinct item from table where ISNULL(item,'')<>'' and item <> "NULL"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X