PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Padrões de modelo e modificadores para formatação numérica no PostgreSQL


Esta página contém a lista completa de padrões de modelo e modificadores de padrão de modelo que podem ser usados ​​ao formatar números no PostgreSQL.

Padrões de modelo


A tabela a seguir lista todos os padrões de modelo que podem ser usados ​​para formatação numérica no Postgres.
Padrão Descrição
9 Posição do dígito (pode ser descartado se for insignificante). Se o dígito for um zero à esquerda, ele será substituído por um espaço. Se for um zero à direita e o modo de preenchimento for especificado (ou seja, FM ) então ele será excluído.
0 Posição do dígito (não será descartada, mesmo que insignificante). Isso significa que a posição do dígito sempre será impressa, mesmo que contenha um zero à esquerda/à direita.
. (período) Ponto decimal. Ignora a localidade.
, (vírgula) Separador de grupo (milhares). Ignora a localidade.
PR Valor negativo entre colchetes angulares.
S Sinal ancorado ao número (usa localidade). Se S aparece à esquerda de um ou mais 9 s, o sinal será ancorado no número.
L Símbolo de moeda (usa localidade).
D Ponto decimal (usa localidade).
G Separador de grupo (usa localidade).
MI Sinal de menos na posição especificada (se o número <0). Não ancorado ao número.
PL Sinal de adição na posição especificada (se o número> 0). Não ancorado ao número. Esta é uma extensão do Postgres.
SG Sinal de mais/menos na posição especificada. Não ancorado ao número. Esta é uma extensão do Postgres.
RN Algarismo romano (entrada entre 1 e 3999).
TH ou th Sufixo de número ordinal. Eles não convertem valores menores que zero e não convertem números fracionários. Estas são extensões do PostgreSQL.
V Desloca o número especificado de dígitos. Quando usado com to_char() , isso multiplica os valores de entrada por 10^n , onde n é o número de dígitos após V . Quando usado com to_number() , ele se divide de maneira semelhante. Ambos to_char()to_number() não são compatíveis com o uso de V combinado com um ponto decimal (por exemplo, 99.9V99 não é permitido).
EEEE Exponente para notação científica. Não pode ser usado em combinação com outros padrões de formatação ou modificadores que não sejam padrões de dígitos e pontos decimais e deve estar no final da string de formato (por exemplo, 9.99EEEE é um padrão válido).

Observações:

  • Ambos 0 e 9 são equivalentes quando usados ​​com o to_number() função.
  • Ao usar o to_number() função, se padrões de modelo sem dados, como L ou TH são usados, o número correspondente de caracteres de entrada é ignorado, independentemente de corresponderem ou não ao padrão do modelo, a menos que sejam caracteres de dados (ou seja, dígitos, sinal, ponto decimal ou vírgula). Por exemplo, TH pularia dois caracteres que não são dados.

Modificadores de padrão de modelo


Os seguintes modificadores podem ser aplicados aos padrões de modelo acima para alterar o resultado.
Modificador Descrição
FM prefixo Modo de preenchimento (suprimir zeros à direita e espaços em branco de preenchimento).
TH sufixo Sufixo numérico ordinal maiúsculo. Não converte valores menores que zero e não converte números fracionários. Esta é uma extensão do Postgres.
th sufixo Sufixo de número ordinal em minúsculas. Não converte valores menores que zero e não converte números fracionários. Esta é uma extensão do Postgres.

Observe que o primeiro é adicionado como prefixo ao padrão de modelo e os outros dois são adicionados como sufixo.

Exemplo


Aqui está um exemplo rápido que inclui um padrão de modelo e um modificador.
SELECT to_char(1, '9th');

Resultado:
1st

Nesse caso, o 9 foi para o número (1 ), e o th foi usado para adicionar o indicador ordinal (neste caso, st ).