PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Modelli e modificatori di modelli per la formattazione numerica in PostgreSQL

Questa pagina contiene l'elenco completo di modelli di modello e modificatori di modelli di modello che possono essere utilizzati durante la formattazione dei numeri in PostgreSQL.

Modelli di modello

La tabella seguente elenca tutti i modelli di modello che possono essere utilizzati per la formattazione numerica in Postgres.

Modello Descrizione
9 Posizione della cifra (può essere eliminata se insignificante). Se la cifra è uno zero iniziale, verrà sostituita da uno spazio. Se è uno zero finale e viene specificata la modalità di riempimento (ad esempio FM ) quindi verrà eliminato.
0 Posizione della cifra (non verrà eliminata, anche se insignificante). Ciò significa che la posizione della cifra verrà sempre stampata, anche se contiene uno zero iniziale/finale.
. (punto) Punto decimale. Ignora la locale.
, (virgola) Separatore di gruppo (migliaia). Ignora la locale.
PR Valore negativo tra parentesi angolari.
S Segno ancorato al numero (usa la localizzazione). Se S appare appena a sinistra di uno o più 9 s, il segno sarà ancorato al numero.
L Simbolo di valuta (usa la locale).
D Punto decimale (usa la locale).
G Separatore di gruppo (usa la locale).
MI Segno meno nella posizione specificata (se numero <0). Non ancorato al numero.
PL Segno più nella posizione specificata (se numero> 0). Non ancorato al numero. Questa è un'estensione di Postgres.
SG Segno più/meno nella posizione specificata. Non ancorato al numero. Questa è un'estensione di Postgres.
RN Numero romano (inserire tra 1 e 3999).
TH o th Suffisso del numero ordinale. Questi non convertono valori inferiori a zero e non convertono numeri frazionari. Queste sono estensioni di PostgreSQL.
V Sposta il numero di cifre specificato. Se utilizzato con to_char() , questo moltiplica i valori di input per 10^n , dove n è il numero di cifre che seguono V . Se utilizzato con to_number() , si divide in modo simile. Entrambi to_char()to_number() non supportano l'uso di V combinato con un punto decimale (ad es. 99.9V99 non è consentito).
EEEE Esponente per la notazione scientifica. Non può essere utilizzato in combinazione con nessuno degli altri modelli di formattazione o modificatori diversi dai modelli di cifre e punti decimali e deve trovarsi alla fine della stringa di formato (ad es. 9.99EEEE è un modello valido).

Note:

  • Entrambi 0 e 9 sono equivalenti se usati con to_number() funzione.
  • Quando si utilizza il to_number() funzione, se modelli di modelli non di dati come LTH vengono utilizzati, il numero corrispondente di caratteri di input viene saltato, indipendentemente dal fatto che corrispondano o meno al modello del modello, a meno che non siano caratteri di dati (ad esempio cifre, segno, punto decimale o virgola). Ad esempio, TH salterebbe due caratteri non di dati.

Modificatori del modello di modello

I seguenti modificatori possono essere applicati ai modelli di modello sopra per alterare il risultato.

Modificatore Descrizione
FM prefisso Modalità riempimento (sopprime zeri finali e spazi vuoti).
TH suffisso Suffisso del numero ordinale maiuscolo. Non converte valori inferiori a zero e non converte numeri frazionari. Questa è un'estensione di Postgres.
th suffisso Suffisso del numero ordinale minuscolo. Non converte valori inferiori a zero e non converte numeri frazionari. Questa è un'estensione di Postgres.

Nota che il primo viene aggiunto come prefisso al modello del modello e gli altri due vengono aggiunti come suffisso.

Esempio

Ecco un rapido esempio che include sia un modello di modello che un modificatore.

SELECT to_char(1, '9th');

Risultato:

1st

In questo caso, il 9 era per il numero (1 ), e il th è stato utilizzato per aggiungere l'indicatore ordinale (in questo caso, st ).