Addition mit sql*plus von oracle
rstarke1977
- datenbank
1 Vinzenz Mai0 Ilja
hallo,
ich habe eine etwas knifflige aufgabe.
es soll zu folgendem string '5.500.- Euro' 500 addiert werden. das ganze soll in einer select anweisung realisiert und als ergebnis dann wieder '6.000.- Euro' (string) ausgegeben werden.
sql plus bietet dafür die möglichkeit eine dummy-tabelle zu nutzen. hier ein kurzes beispiel:
select mod(25,13) from dual;
mod(25,13)
---------------
12
klar könnte ich eine start verschachtelte select anweisung formulieren, aber vielleicht fällt jemandem noch eine einfachere lösung ein. nun mein bisheriges ergebnis, bei welchem nur noch die umstellung in einen string fehlt:
select (to_number (substr('5.500.- Euro',1,(instr('5.500.- Euro','-')-2)
),'99.999')
)*1000+500
from dual;
---------------
6000
das muss doch einfacher gehn.... bitte helft mir
Hallo,
ich habe eine etwas knifflige aufgabe.
es soll zu folgendem string '5.500.- Euro' 500 addiert werden. das ganze soll in einer select anweisung realisiert und als ergebnis dann wieder '6.000.- Euro' (string) ausgegeben werden.
das muss doch einfacher gehn.... bitte helft mir
die einfachste Methode ist die, keine Zahl zu einer Zeichenkette addieren zu müssen, sondern in einer Spalte mit dem richtigen Datentyp die Zahl 5500 stehen zu haben.
Der einzige sinnvolle Grund der mir für diese Aufgabe einfällt, ist das Üben mit dem Umgang der diversen Funktionen, die einem Oracle zur Verfügung stellt.
Freundliche Grüße
Vinzenz
yo,
ich kann mich Vinz meinung nur anschließen, wenn man mit einem attribut rechnen will, dann sollte es in geeigneter form vorliegen. manchmal hat man aber leider solchte werte als string vorliegen, da man nicht immer die kontrolle über die daten hat.
es kommt ein wenig darauf an, ob es nur um diesen wert geht oder aber eine ganze reihe von string werten und nach welche muster diese aufgebaut sind. geht es dir als nur um diesen einen wert oder darum, es allgemeiner zu lösen ?
TO_CHAR() ist für dich auch noch interessant. ausserdem hängt es von deinen NLS einstellungen ab, wie der punkt interpretiert wird.
Ilja