Alex_winf01 Geschrieben 13. September 2010 Geschrieben 13. September 2010 Hallo, innerhalb eines Select-Befehles habe ich folgende Konstruktion: SpalteA + SpalteB + SpalteC & wenn(SpalteD = 1;"Text";"") D. h. vorne kommt die Aufsummierung der Spalten A, B und C und dann wenn SpalteD > 0 ist ein beliebiger Text, ansonsten soll nur die Aufsummierung der Spalten A, B und C erscheinen. Folgende Konstruktion habe ich probiert: SpalteA + SpalteB + SpalteC + Case WHEN SpalteD = 1 Then 'Text' Else '' End AS xyz, SpalteA, SpalteB und SpalteC kommen aus der selben Abfrage wie xyz. Leider bekomme ich eine Fehlermeldung, dass SpalteA, SpalteB und SpalteC ungültig sind. Was mache ich da falsch?
MartinSt Geschrieben 13. September 2010 Geschrieben 13. September 2010 Die Aufsummierung ist ein numerischer Wert, den du nicht direkt mit einem String verketten kannst, sondern den du vorher erst als String formatieren mußt.
Alex_winf01 Geschrieben 13. September 2010 Autor Geschrieben 13. September 2010 @ MartinSt Du meinst die Methoden CONCATENATE (ausdruck || ausdruck), convert bzw. cast?
MartinSt Geschrieben 13. September 2010 Geschrieben 13. September 2010 Sowas in der Richtung; ich weiß ja nicht auf welches DB-System du dich beziehst?
Alex_winf01 Geschrieben 13. September 2010 Autor Geschrieben 13. September 2010 @ MartinSt wir setzen eine Oracle-Datenbank ein, Version 10g
Stefan87 Geschrieben 14. September 2010 Geschrieben 14. September 2010 (bearbeitet) Das sollte eigentlich kein Problem sein, wenn die Spalten vom Typ her auch NUMBER und nicht VARCHAR sind ? Es gibt allerdings noch ein Problem wenn du diesen Code verwendest --------------------------------- SpalteA + SpalteB + SpalteC + Case WHEN SpalteD = 1 Then 'Text' Else '' End AS xyz, --------------------------------- denn nach dem addieren von A, B und C brauchst du ein || und nicht ein + da sonst die Spalte D addiert wird .... was nicht geht wenn es sich um einen Text handelt ... --------------------------------- SpalteA + SpalteB + SpalteC || Case WHEN SpalteD = 1 Then 'Text' Else '' End AS xyz, --------------------------------- Hoffe das dir das hilft Bearbeitet 14. September 2010 von Stefan87
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden