Zum Inhalt springen

Oracle/SQL: einfache Where-Bedingung funzt nicht


Empfohlene Beiträge

Geschrieben

Moin Ihr!

Ich habe eine Tabelle, aus der ich alle Datensätze auslesen möchte, deren Datum (in einem Feld gespeichert) zwischen zwei Zeitpunkten liegt und außerdem eine 0 im Feld "gesperrt" und keine 0 und kein O im Feld "Telnr" stehen hat... - soweit so gut - bis auf die letzten beiden Bedingungen geht's auch - aber die Ungleich-Bedingungen im Feld Telnr mag er nicht :( - genausowenig geht es, wenn ich in dem Feld "gesperrt" nach ungleich 1 abfragen würde... - er findet keine Datensätze, obwohl definitiv welche mit den Kriterien vorhanden sind...

Hier mal meine Query - vielleicht hab ich ja auch nur nen blöden Fehler drin...


SELECT BBNR,WVDATUM FROM STAMMDATEN

WHERE ((WVDATUM <= (SYSDATE + 0.01)) 

  AND (WVDATUM >= (SYSDATE - 0.01)) 

  AND (GESPERRT = 0) 

[color=red]  AND (TELNR <> 'O') 

  AND (TELNR <> '0')[/color])

ORDER BY WVDATUM

Die problematischen Bedingungen hab ich mal rot markiert...

Bin für jeden Tip dankbar...

Geschrieben

Ich weiß zwar nicht, wie das Feld formatiert ist (ich denke mal als VarChar2), aber probier es einfach mal so!

SELECT BBNR,WVDATUM FROM STAMMDATEN

WHERE ((WVDATUM <= (SYSDATE + 0.01))

AND (WVDATUM >= (SYSDATE - 0.01))

AND (GESPERRT = 0)

AND NOT (TELNR = 'O')

AND NOT (TELNR = '0'))

ORDER BY WVDATUM;

Viel Spaß beim Testen!

CYA

Geschrieben

Hi Beety,

Du solltest es nochmal mit dem LIKE Befehl versuchen, bzw. in Deinem Fall mit NOT (TELNR LIKE 'O')

Das funktioniert manchmal besser bei VarChar-Feldern.

Oder Du läßt mal die Hochkommata bei der 0 weg. Dann wandelt er nämlich die 0 die in einigen Feldern steht in NUMBER um und dann hast Du keine Probleme mit eventuellen Leerzeichen oder sowas davor. Bei LIKE sollte das aber auch schon nicht das Problem sein.

Greetz Dooley

Geschrieben
Originally posted by DooleyDoo

Hi Beety,

Du solltest es nochmal mit dem LIKE Befehl versuchen, bzw. in Deinem Fall mit NOT (TELNR LIKE 'O')

Das funktioniert manchmal besser bei VarChar-Feldern.

Oder Du läßt mal die Hochkommata bei der 0 weg. Dann wandelt er nämlich die 0 die in einigen Feldern steht in NUMBER um und dann hast Du keine Probleme mit eventuellen Leerzeichen oder sowas davor. Bei LIKE sollte das aber auch schon nicht das Problem sein.

Greetz Dooley

Thx... - aber das hat leider auch nicht geholfen... - ich versteh das langsam nicht mehr... - es kann doch nicht so schwer sein, alle Datensätze auszuschliessen, die ein O oder ne 0 im Feld stehen haben...

Geschrieben

Ich hab mein Problem netterweise gelöst bekommen :)

Scheinbar benötigt Oracle erstmal ne Abfrage, ob das Feld "IS NULL" ist... - weiß nicht wieso, aber folgende Query funzt:


SELECT BBNR,WVDATUM FROM STAMMDATEN

WHERE ((WVDATUM <= (SYSDATE + 0.01))

  AND (WVDATUM >= (SYSDATE - 0.01)) 

  AND (GESPERRT = 0) 

  AND ((TELNR is null) 

    OR((TELNR <> ''0'') 

       AND(TELNR <> ''O'')))) 

ORDER BY WVDATUM

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...