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

2 начина за добавяне на водещи нули в PostgreSQL

В PostgreSQL можем да използваме TO_CHAR() функция за добавяне на водещи нули към число. Функцията преобразува числото в низ, като използва (по избор) формат, който посочим.

Друга възможност е да използвате LPAD() функция за допълване на число с водещи нули.

TO_CHAR() Функция

Когато използвате TO_CHAR() функция, използвайте 0 форматен елемент, за да включва начални и/или крайни нули.

Пример:

ИЗБЕРЕТЕ TO_CHAR(7, 'fm000'); 

Резултат:

007

Ето го в сравнение с 9 форматен елемент:

ИЗБЕРЕТЕ TO_CHAR(7, 'fm999') КАТО "9", TO_CHAR(7, 'fm000') КАТО "0"; 

Резултат:

<преди> 9 | 0 ---+----- 7 | 007

Броят на водещите нули се определя от броя на 0 форматни елементи и броя на цифрите в числото:

ИЗБЕРЕТЕ TO_CHAR(77, 'fm0') КАТО "r1", TO_CHAR(77, 'fm00000') КАТО "r2", TO_CHAR(777, 'fm00000') КАТО "r3", TO_CHAR(7777, 'fm00000') AS "r4", TO_CHAR(77777, 'fm00000') AS "r5"; 

Резултат:

<пред> r1 | r2 | r3 | r4 | r5 ----+-------+-------+-------+------- # | 00077 | 00777 | 07777 | 77777

fm модификаторът на формат потиска всички водещи и/или крайни запълвания, които могат да бъдат включени в резултата. Например, когато числото е отрицателно, се поставя знак минус. Но когато числото е положително, не се включва знак и се появява интервал, където би бил знакът плюс.

Ето пример за демонстриране на това:

ИЗБЕРЕТЕ TO_CHAR(-7, '000') КАТО "Знак минус", TO_CHAR(7, '000') КАТО "Подплатено", TO_CHAR(7, 'fm000') КАТО "Неподплатено"; 

Резултат:

 Знак минус | Подплатен | Неподплатен ------------+--------+------------ -007 | 007 | 007

LPAD() Функция

Като алтернатива можем да използваме LPAD() функция за добавяне на числа с водещи нули:

ИЗБЕРЕТЕ LPAD('7', 3, '0'); 

Резултат:

007

Друг пример:

ИЗБЕРЕТЕ LPAD('77', 1, '0') КАТО "r1", LPAD('77', 5, '0') КАТО "r2", LPAD('777', 5, ' 0') AS "r3", LPAD('7777', 5, '0') AS "r4", LPAD('77777', 5, '0') AS "r5"; 

Резултат:

<пред> r1 | r2 | r3 | r4 | r5 ----+-------+-------+-------+------- 7 | 00077 | 00777 | 07777 | 77777

Имайте предвид, че тази функция изисква числото да се предава като низ. Следователно първо трябва да преобразуваме числото в низ. Знакът за допълване също трябва да бъде низ.

Така че може да се наложи да направим нещо подобно:

ИЗБЕРЕТЕ LPAD(CAST(7 AS varchar), 3, '0'); 

Резултат:

007

Едно от предимствата на LPAD() има над предишния метод е, че можем да поставим пред резултата други знаци – не е необходимо да е водеща нула.

ИЗБЕРЕТЕ LPAD('77', 1, '.') КАТО "r1", LPAD('77', 5, '.') КАТО "r2", LPAD('777', 5, '). .') AS "r3", LPAD('7777', 5, '.') AS "r4", LPAD('77777', 5, '.') AS "r5"; 

Резултат:

 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. Как мога да добавя колона, която не позволява нулеви стойности в база данни на Postgresql?

  2. Добавете години към дата в PostgreSQL

  3. psql:ФАТАЛНО:Удостоверяването на партньора е неуспешно за потребителски dev

  4. Напишете бърза рамка с данни на pandas в postgres

  5. Как да подготвим изрази и параметри за свързване в Postgresql за C++