Когато използвате TO_CHAR()
функция за форматиране на число в Oracle Database, можете да използвате S
форматен елемент, за да върне своя знак (т.е. знак плюс за положителни стойности и знак минус за отрицателни стойности).
Можете също да използвате MI
форматен елемент, за да върне отрицателни стойности с краен отрицателен знак и положителни стойности с крайно празно място.
Пример за S
Елемент за формат
Ето пример за демонстрация на S
форматен елемент:
SELECT
TO_CHAR(-7, 'S9') AS "Negative",
TO_CHAR(7, 'S9') AS "Positive"
FROM DUAL;
Резултат:
Negative Positive ___________ ___________ -7 +7
S
Елементът format може алтернативно да се приложи на последната позиция на модела на формат. Това води до добавяне на знак към резултата:
SELECT
TO_CHAR(-7, '9S') AS "Negative",
TO_CHAR(7, '9S') AS "Positive"
FROM DUAL;
Резултат:
Negative Positive ___________ ___________ 7- 7+
Но S
Елементът format не може да се появи в двата края на модела на форматиране. Ако е така, възниква грешка:
SELECT TO_CHAR(7, 'S9S')
FROM DUAL;
Резултат:
Error report - ORA-01481: invalid number format model
MI
Елемент за формат
MI
форматен елемент завършващ отрицателен знак в случаите, когато числото е отрицателно, и крайно празно място, когато е положително:
SELECT
TO_CHAR(-7, '9MI') AS "Negative",
TO_CHAR(7, '9MI') AS "Positive"
FROM DUAL;
Резултат:
Negative Positive ___________ ___________ 7- 7
Имайте предвид, че MI
Елементът format може да се появи само на последната позиция на модела на формат. Ако е в друга позиция, възниква грешка:
SELECT TO_CHAR(7, 'MI9')
FROM DUAL;
Резултат:
Error report - ORA-01481: invalid number format model