Datenmenge Filtern



  • Hallo zusammen!

    Mein Problem: Ich möchte gerne eine belibige SQL-Anweisung Filtern können.
    Leider bekomme ich umbenannte Spalten oder Decodes nicht gefiltert.

    Ich habe eine SQL-Anweisung und möchte wissen ob man das hinkriegt!?

    select baum.anzahl as "Äpfel"
        from baum
        where  Äpfel = 0
    

    Der Hacken ist der, dass ich folgendes nicht verwenden kann:

    select baum.anzahl as "Äpfel"
        from baum
        where  baum.anzahl = 0
    

    Besteht eine Möglichkeit zu erfahren, dass hinter dem Bezeichner "Äpfel"
    sich die Spalte anzahl verbirgt? Die Änalyse der SQL-Anweisung würde ich
    gerne vermeiden, denn es können ja verschachtelte selects vorliegen.

    Vielen Dank für jeden Hinweis!
    coder24h



  • Dann verschachtele doch selber.

    select * FROM (
        select baum.anzahl as "Äpfel"
        from baum) v
        where  "Äpfel" = 0
    


  • Liegt daran weil "Äpfel" falsch sein könnte.
    Umlaute sollte man vermeiden.
    Hier kommt es auf das RDBMS an.

    MSSQL z.B.

    würde
    WHERE [Äpfel]
    funktionieren ohne es getestet zu haben.



  • coder24h schrieb:

    ...

    select baum.anzahl as "Äpfel"
        from baum
        where  Äpfel = 0
    

    ...

    Was ist das denn für eine Datenbank? Normalerweise müsste das gehen (vom Umlaut mal abgesehen)



  • Hallo und Danke für die zahlreichen posts. Es handelt sich um die Oracle8-DB.

    Es ist mir schon klar, dass man die Umlaute vermeiden muss, leider is es in meinem Fall nicht möglich.

    Unix-Tom schrieb:

    MSSQL z.B. würde

    WHERE [Äpfel]

    funktionieren ohne es getestet zu haben.

    Ich meine das ist zwar nur ein Hoffnungschimmer, aber wenn das unter MySQL geht, dann wird sich auch bei oracle eine Lösung dafür finden 😉

    Ich bin mir ziemlich sicher folgendes ausprobiert zu haben:

    select * FROM (
        select baum.anzahl as "Äpfel"
        from baum) 
        where  "Äpfel" = 0
    

    doch leider ohne Erfolg. Werde noch mal morgen einfache Hochkommas ausprobieren.



  • Ich schrieb: MSSQL
    Das ist Microsoft SQL und nicht MySQL.

    Hab mal gesucht.
    ORACLE sollte doppelte Hochkomas akzeptieren.
    Kann es sein das dein RDBMS vom Zeichensatz es nicht kann.



  • Bei mir gehts, zumindest unter ORACLE 10 so:

    select anzahl as äpfel from tabelle1 where anzahl = 1
    

    Eventuell wird der Umlaut auch aus kompartiblitätsgründen von der Schnittstelle blockiert?! (ODBC,ADO?!)

    (edit)
    Firebird 2.0 per ADO via ODBC verweigert das selbe Statement mit Syntaxfehler. Ohne "ä" gehts auch dort.



  • Unix-Tom schrieb:

    Hab mal gesucht.
    ORACLE sollte doppelte Hochkomas akzeptieren.
    Kann es sein das dein RDBMS vom Zeichensatz es nicht kann?

    Wenn ich die Hochkommas verwende bekomme ich eine Fehlermeldung "Ungültiger Spaltenname".

    Ich verwende eine ODBC-Schnittstelle im Verbindung mit Borland Entwicklungsumgebung (Borland C++ Builder). Zu der Schnittstelle oder BDE habe ich keinen direkten Zugang daher denke ich dass meine Idee verworfen werden müsste.

    Vielen Dank für die Unterstützung.


Anmelden zum Antworten