PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak formatować liczby w PostgreSQL

Podczas pracy z Postgresem możesz użyć to_char() funkcja do wyprowadzania liczb w podanym formacie.

Działa to tak, że podajesz dwa argumenty. Pierwszym argumentem jest liczba do sformatowania. Drugi argument określa sposób jego formatowania.

Zwracana wartość to tekst .

W zależności od wymagań możesz chcieć przekonwertować liczbę na odpowiedni typ danych, na przykład za pomocą cast() funkcja.

Przykłady obu metod znajdują się poniżej.

Przykład

Oto podstawowy przykład do zademonstrowania.

SELECT to_char(10, '99.99');

Wynik:

10.00

9 s faktycznie mają szczególne znaczenie w tym kontekście. Ten znak jest jednym z prawidłowych wzorców szablonów, z których może składać się ciąg formatu podczas formatowania liczb.

W przypadku 9 , określa pozycję cyfry, ale jeśli jest to początkowe zero, zostanie zastąpione spacją, a jeśli jest to końcowe zero i określono tryb wypełniania, zostanie ono usunięte.

Jeśli usunę część dziesiętną i część ułamkową sekund, otrzymam inny wynik.

SELECT to_char(10, '99');

Wynik:

10

Upuść wiodące zera

Możesz zastąpić 9 z 0 jeśli chcesz pominąć początkowe i końcowe zera, nawet jeśli są nieistotne.

Oto przykład, który pokazuje różnicę między nimi.

SELECT 
  to_char(0010, '9999') AS "9999",
  to_char(0010, '0000') AS "0000";

Wynik:

 9999  | 0000  
-------+-------
    10 |  0010

Wzorce szablonów

Jak widać w poprzednich przykładach, ciąg formatu składa się z co najmniej jednego wzorca szablonu.

Na przykład 9999 to ciąg formatu, który składa się z czterech wzorców szablonów – z których każdy ma wartość 9 .

Miejsce dziesiętne to kolejny wzorzec szablonu.

Mogłem użyć D zamiast miejsca dziesiętnego. Używa aktualnego ustawienia regionalnego do właściwego formatowania.

SELECT 
  to_char(10, '99.99') AS "99.99",
  to_char(10, '99D99') AS "99D99";

Wynik:

 99.99  | 99D99  
--------+--------
  10.00 |  10.00

Aby uzyskać pełną listę wzorców szablonów i modyfikatorów, zobacz Wzorce szablonów i modyfikatory formatowania liczb w Postgresie.

Modyfikatory wzorców szablonów

Istnieje również kilka modyfikatorów, których można użyć wraz ze wzorem szablonu. Zmieniają one sposób formatowania danych wyjściowych, w zależności od użytego modyfikatora.

W szczególności istnieją trzy modyfikatory, których można używać z formatowaniem liczb.

Modyfikator Opis
FM przedrostek tryb wypełniania (pomijanie końcowych zer i wypełniania pustych miejsc)
TH przyrostek sufiks liczby porządkowej wielkich liter
th przyrostek sufiks liczby porządkowej małymi literami

Zauważ, że pierwszy jest dodawany jako przedrostek do wzorca szablonu, a dwa pozostałe jako przyrostek.

Liczby porządkowe

Powszechnym wymogiem jest przekształcenie liczby na jej liczbę porządkową. Możemy użyć TH lub th w tym celu, w zależności od tego, czy chcemy, aby sufiks był wielkimi czy małymi literami.

Oto przykład.

SELECT to_char(03, 'FM99th');

Wynik:

3rd

W tym przypadku również użyłem FM aby pominąć wszelkie spacje i końcowe zera.

Oto porównanie korzystania z FM i pomijając to:

SELECT 
  to_char(03, '99th') AS "99th",
  to_char(03, 'FM99th') AS "FM99th";

Wynik:

 99th  | FM99th 
-------+--------
   3rd | 3rd

Jeśli przyjrzysz się uważnie, pierwsza kolumna ma wiodące spacje, podczas gdy druga kolumna nie.

Waluta

Innym powszechnym wymogiem jest wypisanie liczby w danej walucie.

W takim przypadku możemy użyć L wzór szablonu, aby wyświetlić symbol waluty uwzględniający ustawienia regionalne.

SELECT to_char(03, 'LFM99D00');

Wynik:

$3.00

Podpisane numery

Istnieją również wzory szablonów dla podpisanych numerów.

Oto przykład.

SELECT to_char(27, 'S99');

Wynik:

+27

Tutaj użyłem S aby dodać znak uwzględniający lokalizację, który jest zakotwiczony do numeru.

W tym przypadku była to liczba dodatnia. Oto kolejny przykład, który używa wartości ujemnej.

SELECT to_char(-27, 'S99');

Wynik:

-27

Istnieje kilka innych wzorców szablonów, których można użyć dla liczb ze znakiem.

Aby zapoznać się z przykładami, zobacz Dołącz znak plus/minus do numeru w Postgresie.

Jak wspomniano, zapoznaj się z wzorcami szablonów i modyfikatorami formatowania liczb w Postgresie, aby uzyskać pełną listę modyfikatorów szablonów, których można używać podczas formatowania liczb.

Typ danych

Jak wspomniano, to_char() funkcja wyświetla wynik jako tekst .

W zależności od wymagań może być lepiej przekonwertować liczbę na bardziej odpowiedni typ danych.

Oto przykład, który konwertuje liczbę na dane pieniędzy typ.

SELECT cast(10 as money);

Wynik:

$10.00

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ZAMÓWIENIE PRZEZ Alias ​​nie działa

  2. Wzór na współczynnik korelacji Pearsona w SQL

  3. tabela przestawna z 2 (lub więcej) nazwami wierszy

  4. Jak pracować z bazami danych PostgreSQL

  5. PostgreSQL - klauzula GROUP BY lub być używana w funkcji agregującej