Abfrage liefert nicht die erwarteten Ergebnisse

mbecher

Neuer Benutzer
Beiträge
3
Ich habe folgenden Problem:
es sollen alle Datensätze ausgegeben werden, die folgenden Kriterien NICHT erfüllen:
  1. Typ = Typ 4
  2. Typ = Typ 6
  3. Typ = Typ 9
  4. Typ = Typ 5 und Art = Art 2
  5. Bezeichnung = nicht leer und Objekt = leer
Die Datensätze sehen aktuell in der DB so aus:
Typ Art Bezeichnung Objekt
Typ 1 Art 1 Bez 1 (null)
Typ 2 (null) (null) (null)
Typ 3 Art 1 Bez 1 Objekt 1
Typ 4 (null) (null) (null)
Typ 5 Art 2 (null) Objekt 1
Typ 6 (null) (null) Objekt 2
Typ 7 (null) (null) (null)
Typ 8 (null) (null) Objekt 3
Typ 9 (null) (null) Objekt 2
Typ 10 Art 3 (null) Objekt 1

Mein aktueller Ansatz sah so aus:
Select Typ,Art,Bezeichnung,Objekt from table
WHERE (Typ <> 'Typ 4')
AND (Typ <> 'Typ 6')
AND (Typ <> 'Typ 9')
AND ((Typ <> 'Typ 5') AND (Art <> 'Art 2'))
AND ((Bezeichnung is not null) AND (Objekt is not null))

Leider bekomme ich da nur Zeile 3 angezeigt. Mir fehlt aber noch die Zeilen 2,7,8 und 10.

Kann mir jemand dazu helfen?

PS: Ich muss es über das Ausschlussprinzip machen, da der Rest der Daten um einiges mehr ist.
 
Werbung:
Okay, der Befehl sagt mit gar nichts. Habt ihr mal nen Beispiel, wie das zu verwenden ist oder wie der in der Abfrage eingebaut wird?
 
Code:
test=*# select null = 0;
 ?column?
----------
(1 Zeile)

test=*# select coalesce(null,0) = 0;
 ?column?
----------
 t
(1 Zeile)

test=*# select coalesce(null,null,0) = 0;
 ?column?
----------
 t
(1 Zeile)

test=*# select coalesce(null,null,1) = 0;
 ?column?
----------
 f
(1 Zeile)

coalesce() liefert den ersten NOT-NULL - Parameter zurück. Deine Spalten Art und Bezeichnung enthalten null-Werte. coalesce(spalte,'') könnte Dir helfen.
 
Werbung:
Okay, jetzt habe ich mal des Internet nach dem Coalesce-Befehl durchsucht und mit den Informationen von gestern kombiniert. Aber irgendwie bekomme ich keinen vernünftigen Syntax hin bzw. verstehe den Aufbau nicht. Kann mir jemand helfen, diesen in meine Abfrage zu integrieren? PS: Ich bin echt nur gelegentlicher SQL-Nutzer und eben kein Guru. Sehr es mir bitte nach.
 
Zurück
Oben