2016-07-29 14 views
0

Ich habe eine Reihe zum Beispiel 39.46 , und ich will es in ,-Format konvertieren heißt es wie 39,46 in SQLZahlenformat in SQL

es aussehen soll, ist jede Funktion dezimal Menge in , getrennt Format zu konvertieren?

+4

Welche RDBMS verwenden Sie? SQl Server, MySQL, Oracle, Postgres ... – JNevill

+0

Ich verwende ORACLE RDBMS – Nutan

+0

SQL Server oder mysql oder oracle – TheGameiswar

Antwort

2

Es gibt eine NLS-Einstellung NLS_NUMERIC_CHARACTERS, in der Sie "," als Dezimaltrennzeichen und "." Tausende trennen. Sie werden normalerweise automatisch festgelegt, wenn Sie Ihr Gebietsschema festlegen. Sie verwenden offensichtlich ein englisches Gebietsschema.

Siehe here.

Das setzt voraus, dass Sie tatsächliche Zahlen in Ihrer Datenbank haben und keine Zeichenfolgen, die wie Zahlen aussehen. Für Zeichenketten möchten Sie möglicherweise Stichkonvertierungsoperationen verwenden, wie von Thomas G. beschrieben.

+0

Das ist eigentlich eine bessere Antwort als meine, seit er schließlich Oracle DBMS erklärt hat. da ich ein fairer Spieler bin, habe ich upvote :) –

+0

Err .. nicht wirklich. Sie müssen ** String-Manipulationen nicht verwenden; Die Zeichenfolge kann in Zahl konvertiert und dann mit dem Parameter nls_numeric_character formatiert werden. – mathguy

+0

@mathguy liest du überhaupt? Zu der Zeit, als ich mein Asnwer schrieb, hatte das OP das DBMS noch nicht spezifiziert. Jedenfalls habe ich meine Antwort entfernt. –

0

Im Folgenden zeige ich, wie Sie das Zahlenformat und den Parameter nls_numeric_characters sowohl für eine numerische Eingabe als auch für eine Zeichenfolgeneingabe verwenden. Beachten Sie das d (oder D) im Format-Modell, es heißt "verwenden, was auch immer das entsprechende Dezimaltrennzeichen ist."

SQL> select to_char(93.23, '999d99', 'nls_numeric_characters='',.''') from dual; 

TO_CHAR 
------- 
    93,23 

1 row selected. 

Elapsed: 00:00:00.14 
SQL> select to_char(to_number('93.23'), '999d99', 'nls_numeric_characters='',.''') 
                      from dual; 

TO_CHAR 
------- 
    93,23 

1 row selected.