Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да форматирате числа със знак минус/плюс в Oracle

Когато използвате 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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Доставчикът на ADO.NET „Oracle.ManagedDataAccess.Client“ или не е регистриран в конфигурационния файл на машината или приложението, или не може да бъде зареден

  2. Хибернация, идентификатор, оракул, последователност

  3. 5 начина за актуализиране на данни с подзаявка в Oracle SQL

  4. Обяснение на оператора Oracle UNION

  5. Как да вмъкнете колона в конкретна позиция в оракул, без да изпускате и пресъздавате таблицата?