Mimo że Oracle Database ma TO_CHAR(number)
funkcja pozwalająca na formatowanie liczb, nie dostarcza elementu formatującego dla znaku procentu.
Dlatego, jeśli chcemy sformatować liczbę jako procent w Oracle Database, musimy połączyć znak procentu i liczbę.
Przykład
Możemy użyć CONCAT()
funkcja łączenia liczby i znaku procentu.
Nadal możemy użyć TO_CHAR(number)
funkcja formatowania liczby tak, aby zawierała żądane miejsca dziesiętne, wiodące zera (lub nie) itp.:
SELECT CONCAT(TO_CHAR(18, 'fm00D00'), '%')
FROM DUAL;
Wynik:
18.00%
Tutaj użyłem 0
format elementu, co oznacza, że pozycja cyfry będzie zawsze drukowana, nawet jeśli zawiera początkowe/końcowe zero.
Użyłem również fm
modyfikator formatu, aby pominąć wszelkie wiodące/końcowe zera lub spacje.
Oto kilka innych modeli formatu:
SELECT
CONCAT(TO_CHAR(7, 'fm00'), '%') AS "1",
CONCAT(TO_CHAR(7, 'fm99'), '%') AS "2",
CONCAT(TO_CHAR(7.4567, 'fm0D00'), '%') AS "3",
CONCAT(TO_CHAR(7, 'fm0D00'), '%') AS "4"
FROM DUAL;
Wynik:
1 2 3 4 ______ _____ ________ ________ 07% 7% 7.46% 7.00%
W razie potrzeby możemy wykonać obliczenia na podstawie liczby:
SELECT
CONCAT(TO_CHAR(18 * 0.1, 'fm99D00'), '%') AS "1",
CONCAT(TO_CHAR(0.18 * 100, 'fm99D00'), '%') AS "2"
FROM DUAL;
Wynik:
1 2 ________ _________ 1.80% 18.00%
W tym przypadku dołączyłem 9
sformatuj element tak, aby wszystkie wiodące zera zostały pominięte.
Pomijanie TO_CHAR()
Funkcja
Jeśli nie mamy szczególnej potrzeby formatowania liczby poza przekonwertowaniem jej na format procentowy, nie potrzebujemy nawet TO_CHAR()
funkcja:
SELECT CONCAT(18, '%')
FROM DUAL;
Wynik:
18%
Operator konkatenacji
Innym sposobem łączenia liczby i znaku procentu jest użycie operatora łączenia (||
):
SELECT 18 || '%'
FROM DUAL;
Wynik:
18%
I oto jest z TO_CHAR()
dodano funkcję dodatkowego formatowania:
SELECT TO_CHAR(18, 'fm00D00') || '%'
FROM DUAL;
Wynik:
18.00%