Oracle
 sql >> Baza danych >  >> RDS >> Oracle

2 sposoby formatowania liczby z wiodącymi zerami w Oracle

Używając bazy danych Oracle do formatowania liczby tak, aby zawierała wiodące zera, musimy przekonwertować ją na ciąg i odpowiednio sformatować.

Możesz użyć TO_CHAR(number) funkcja formatowania liczb z wiodącymi zerami.

I być może mniej znanym faktem jest to, że możesz również użyć LPAD() funkcja dopełniania liczby wiodącymi zerami.

TO_CHAR() Funkcja

Używając TO_CHAR(number) funkcji, użyj 0 element formatu zawierający początkowe i/lub końcowe zera.

Przykład:

SELECT TO_CHAR(7, 'fm000')
FROM DUAL;

Wynik:

007

Oto porównanie z 9 element formatu:

SELECT 
    TO_CHAR(7, 'fm999') AS "9",
    TO_CHAR(7, 'fm000') AS "0"
FROM DUAL;

Wynik:

   9      0 
____ ______ 
7    007   

Liczba zer wiodących jest określona przez liczbę 0 elementy formatu i ilość cyfr w liczbie:

SELECT 
    TO_CHAR(77, 'fm0') AS "r1",
    TO_CHAR(77, 'fm00000') AS "r2",
    TO_CHAR(777, 'fm00000') AS "r3",
    TO_CHAR(7777, 'fm00000') AS "r4",
    TO_CHAR(77777, 'fm00000') AS "r5"
FROM DUAL;

Wynik:

   r1       r2       r3       r4       r5 
_____ ________ ________ ________ ________ 
##    00077    00777    07777    77777   

fm modyfikator formatu pomija wszelkie początkowe i/lub końcowe dopełnienie, które może zostać uwzględnione w wyniku. Na przykład, gdy liczba jest ujemna, przedrostkiem jest znak minus. Ale gdy liczba jest dodatnia, nie uwzględnia się żadnego znaku i pojawia się spacja w miejscu, w którym znajdowałby się znak plus.

Oto przykład, który to zademonstruje:

SELECT 
    TO_CHAR(-7, '000') AS "Minus Sign",
    TO_CHAR(7, '000') AS "Padded",
    TO_CHAR(7, 'fm000') AS "Not Padded"
FROM DUAL;

Wynik:

   Minus Sign    Padded    Not Padded 
_____________ _________ _____________ 
-007           007      007          

LPAD() Funkcja

Alternatywnie możemy użyć LPAD() funkcja formatowania liczb z wiodącymi zerami.

Przykład:

SELECT LPAD(7, 3, '0')
FROM DUAL;

Wynik:

007

Inny przykład:

SELECT 
    LPAD(77, 1, '0') AS "r1",
    LPAD(77, 5, '0') AS "r2",
    LPAD(777, 5, '0') AS "r3",
    LPAD(7777, 5, '0') AS "r4",
    LPAD(77777, 5, '0') AS "r5"
FROM DUAL;

Wynik:

   r1       r2       r3       r4       r5 
_____ ________ ________ ________ ________ 
7     00077    00777    07777    77777   

Jedna z zalet LPAD() ma nad poprzednią metodą jest to, że możemy poprzedzić wynik innymi znakami – nie musi to być wiodące zero.

SELECT 
    LPAD(77, 1, '.') AS "r1",
    LPAD(77, 5, '.') AS "r2",
    LPAD(777, 5, '.') AS "r3",
    LPAD(7777, 5, '.') AS "r4",
    LPAD(77777, 5, '.') AS "r5"
FROM DUAL;

Wynik:

   r1       r2       r3       r4       r5 
_____ ________ ________ ________ ________ 
7     ...77    ..777    .7777    77777   

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00838

  2. Java — znajdź pierwszą przyczynę wyjątku

  3. Czy ograniczenia klucza obcego wpływają na przekształcenia zapytań w Oracle?

  4. Aktualizowanie tabeli Oracle z makra Excel VBA przy użyciu połączenia ODBC

  5. W jaki sposób sterownik ODBC Oracle ładuje klienta Oracle?