Veröffentlicht 13. September 201014 j 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?
13. September 201014 j 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.
13. September 201014 j Autor @ MartinSt Du meinst die Methoden CONCATENATE (ausdruck || ausdruck), convert bzw. cast?
13. September 201014 j Sowas in der Richtung; ich weiß ja nicht auf welches DB-System du dich beziehst?
14. September 201014 j 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 201014 j von Stefan87
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.