sql >> Databasteknik >  >> RDS >> Oracle

TO_Char nummerformatmodell i Oracle

Tänk på att du omvandlar ett tal till en sträng. Numret har ingen betydelse av "," eller "." eller vad som helst - det är ett nummer.

Tricket är att få TO_CHAR funktion för att konvertera det interna numret till den strängrepresentation du vill ha. Det finns några problem att oroa sig för:att få radixpunkten (decimal) korrekt och hantera utfyllnad.

Här är ett fungerande exempel:

SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

0,00235

SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

156,45823

SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-0,0235

SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-156,45623

SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

123456789,45623

De relevanta delarna av masken:

FM används för att trimma ledande och efterföljande ämnen som Oracle normalt använder för att fylla ut nummer.

D är radixpunkten, beroende på dina NLS-inställningar.

NLS_NUMERIC_CHARACTERS ... är en åsidosättande av dina lokala NLS-inställningar – det här kanske inte är nödvändigt om din lokalitet använder kommatecken för decimalen, men det är ett sätt att tvinga fram detta beteende i en databas med exempelvis nordamerikanska inställningar.



  1. Hur man laddar datumdata i MySQL när man använder LOAD DATA

  2. Hur man får PostgreSQL på en VPS / dedikerad server

  3. PHP MySql okänd servervärd

  4. Hur kan jag granska alla databas- och objektbeviljande för en roll?