NULL - Werte beim Typ Boolean

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: NULL - Werte beim Typ Boolean

Re: NULL - Werte beim Typ Boolean

von F3K Total » Mi, 20.07.2011 22:22

Hallo DPunch,
ja, da habe ich wohl die Frage nicht richtig gelesen, gemeint war "Extras/SQL..." ich dachte es geht um "SQL-Kommado direkt ausführen"
Ich verstehe es jetzt also so, dass man unter "Extras/SQL..." die Befehle ebenso direkt an die DB durchreichen kann, wie bei der Erzeugung von Views oder Abfragen, wenn man den Button "SQL-Kommado direkt ausführen" anklickt.

Beste Grüße von Rik

Re: NULL - Werte beim Typ Boolean

von DPunch » Mi, 20.07.2011 20:38

Aloha
F3K Total hat geschrieben:OOo sagt dazu:
(...)
was ich so verstehe, dass OOo nicht alle in der verwendeten Datenbank (hier HSQL) verfügbaren Befehle interpretieren kann.
Das ist korrekt, aber zumindest in diesem Fall kein Faktor, denn ein über Extras -> SQL abgesetzter Befehl wird zuerst von Base interpretiert, schlägt dabei etwas fehl, wird der Befehl direkt an die Datenbank durchgereicht.
Daher trifft die Aussage
NTClient hat geschrieben:warum ich bei Extras - SQL einenn anderen Syntax eingeben muss (kann), als bei der Abfrage in der SQL-Ansicht
nur insofern zu, dass für manche unter Extras -> SQL erfolgreich ausgeführte Befehle in der Abfrage der Native-Mode aktiviert sein muss, aber dass betrifft ja nicht die Syntax an sich, sondern nur eine gesezte oder nicht gesetzte Option.

Die Syntax "IS NULL" ("IS NOT NULL") ist SQL-Standard und wird von allen mir bekannten DBMS verwendet und auch von Base korrekt interpretiert.
Vergleichsoperatoren wie "<",">","<>" etc auf eine Null-Spalte sind wie gesagt kein Syntax-Fehler, sondern das Ergebnis ist lediglich immer NULL oder FALSE, je nach DBMS.
Daher gehe ich stark davon aus, dass NTClient einen Typo in seiner ursprünglichen Abfrage hatte.
Alles andere würde mich stark verwundern und eine Beispieldatei oder ein Beispielcode zum Reproduzieren der Fehlermeldung würde mich in diesem Fall sehr interessieren.

Re: NULL - Werte beim Typ Boolean

von F3K Total » Mi, 20.07.2011 20:04

Hallo NTClient,
OOo sagt dazu:
SQL_direkt.png
SQL_direkt.png (3.52 KiB) 2168 mal betrachtet
was ich so verstehe, dass OOo nicht alle in der verwendeten Datenbank (hier HSQL) verfügbaren Befehle interpretieren kann.
In meinem Code z.B. das

Code: Alles auswählen

MINUS SELECT ...
Gruß R

Re: NULL - Werte beim Typ Boolean

von DPunch » Mi, 20.07.2011 18:55

Aloha

Prinzipiell ist das kein Syntax-Fehler, sondern nur ein logischer, sprich Du kannst NULL-"Werte" nicht irgendwie vergleichen o.Ä.
Einen Syntax-Fehler solltest Du dabei normalerweise nicht kriegen. (und ich kriege auch keinen, gerade bei der HSQLDB unter OOo 3.2.1 getestet)

Re: NULL - Werte beim Typ Boolean

von NTClient » Mi, 20.07.2011 07:42

Aha, Danke!

Ich verstehe nur nicht, warum ich bei Extras - SQL einenn anderen Syntax eingeben muss (kann), als bei der Abfrage in der SQL-Ansicht. Ist mir bei anderer Gelegenheit schon mal aufgefallen.

Gruß Bernd!

Re: NULL - Werte beim Typ Boolean

von DPunch » Di, 19.07.2011 22:45

Aloha
NTClient hat geschrieben:Schreibe ich diese Zeile in die SQL-Ansicht einer Abfrage erscheint: "Syntax error in SQL expression" bzw. wenn ich in der Entwurfsansicht einer Abfrage für "abgeschlossen" <> Null reinschreibe erscheint "syntax error, unexpected NULL"
NULL lässt sicht nicht mit logischen Operatoren wie =, <, >, <> etc erfassen, weil es kein echter Wert ist.
Die richtige Syntax für derartiges lautet "<Feld> is null" bzw "<Feld> is not null".

Also im Kontext Deiner Abfrage
NTClient hat geschrieben:dass die Abfrage mir die Projekte liefert, für die "abgeschlossen" = 'false' ist oder für die kein Eintrag im Feld vorhanden ist.

Code: Alles auswählen

SELECT "IDProj", "Bezeichnung1", "abgeschlossen" FROM "ID_Projekte" WHERE "abgeschlossen" = FALSE OR "abgeschlossen" IS NULL

Re: NULL - Werte beim Typ Boolean

von F3K Total » Di, 19.07.2011 20:23

Hallo,
versuch es einmal mit

Code: Alles auswählen

SELECT  "IDProj", "Bezeichnung1", "abgeschlossen" FROM "ID_Projekte" MINUS SELECT "IDProj", "Bezeichnung1", "abgeschlossen" FROM "ID_Projekte" where "abgeschlossen"=true
und klicke dabei das Feld "SQL Komando direkt ausführen" an:
SQL_D.png
SQL_D.png (973 Bytes) 2210 mal betrachtet
Gruß R

NULL - Werte beim Typ Boolean

von NTClient » Di, 19.07.2011 18:48

Hallo! Beim SQL-Befehl für boolean-Felder habe ich ein Problem:

schreibe ich unter Extras-SQL folgenden Befehl ins Kommando:

SELECT "IDProj", "Bezeichnung1", "abgeschlossen" FROM "ID_Projekte" WHERE "abgeschlossen" <> null

... erscheint: "Befehl erfolgreich ausgeführt."

Schreibe ich diese Zeile in die SQL-Ansicht einer Abfrage erscheint: "Syntax error in SQL expression" bzw. wenn ich in der Entwurfsansicht einer Abfrage für "abgeschlossen" <> Null reinschreibe erscheint "syntax error, unexpected NULL"

Ich will eigentlich, dass die Abfrage mir die Projekte liefert, für die "abgeschlossen" = 'false' ist oder für die kein Eintrag im Feld vorhanden ist.

Die Datenbank ist eine HSQL 1.8.

Gruß Bernd!

Nach oben