sql >> Database >  >> RDS >> Oracle

TO_Char getalnotatiemodel in Oracle

Houd er rekening mee dat u een getal omzet in een tekenreeks. Het nummer heeft geen betekenis van "," of "." of wat dan ook - het is een getal.

De truc is om de TO_CHAR . te krijgen functie om het interne getal om te zetten naar de gewenste tekenreeksweergave. Er zijn een paar problemen om je zorgen over te maken:het radixpunt (decimaal) correct krijgen en omgaan met opvulling.

Hier is een werkend voorbeeld:

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 relevante delen van het masker:

FM wordt gebruikt om voorloop- en volgspaties in te korten die Oracle normaal gesproken gebruikt om getallen op te vullen.

D is het wortelpunt, afhankelijk van uw NLS-instellingen.

NLS_NUMERIC_CHARACTERS ... is een overschrijving van uw lokale NLS-instellingen - dit is misschien niet nodig als uw landinstelling een komma gebruikt voor het decimaalteken, maar het is een manier waarop u dit gedrag kunt forceren in een database met bijvoorbeeld Noord-Amerikaanse instellingen.



  1. meerdere SQL-tabellen met PHP om sitemap te genereren

  2. Prestaties afstemmen van een DECODE()-instructie in een WHERE-component

  3. hoe verwijderde primaire sleutels in mysql opnieuw te gebruiken?

  4. Mogelijke gevolgen van het vergroten van de varchar-lengte in MySql?