Início > Banco de dados, DB2 / Banco de dados > Formatando campos no DB2

Formatando campos no DB2

É comum a necessidade de formatarmos campos em selects. Um exemplo boçal é o CNPJ. É muito menos custoso formatar na sua query do que na sua aplicação (java por exemplo)… Então, segue um exemplo de como formatar um CNPJ.

Supondo que seu campo CNPJ tenha o nome CCNPJEMPR, e o conteúdo do mesmo seja:

086547761002422

E você queira retornar assim:

086.547.761/0024-22

Basta utilizar na sua query:

SELECT
SUBSTR(CAST(RIGHT(CONCAT('000000000',CAST(empresa.CCNPJEMPR AS VARCHAR(15))),15) AS VARCHAR(15)),1,3) || '.' ||
SUBSTR(CAST(RIGHT(CONCAT('000000000',CAST(empresa.CCNPJEMPR AS VARCHAR(15))),15) AS VARCHAR(15)),4,3) || '.' ||
SUBSTR(CAST(RIGHT(CONCAT('000000000',CAST(empresa.CCNPJEMPR AS VARCHAR(15))),15) AS VARCHAR(15)),6,3) || '/' ||
SUBSTR(CAST(RIGHT(CONCAT('000000000',CAST(empresa.CCNPJEMPR AS VARCHAR(15))),15) AS VARCHAR(15)),9,4) || '-' ||
SUBSTR(CAST(RIGHT(CONCAT('000000000',CAST(empresa.CCNPJEMPR AS VARCHAR(15))),15) AS VARCHAR(15)),14,2) AS CNPJ_FORMATADO
FROM
CLIENTES;

A função SUBSTR irá pegar os “pedaços” do campo, repare na primeira linha, que especifico 1,3, isso quer dizer, que ela deve pegar 3 caracteres a partir da primeira posição do campo, no exemplo 086.
Onde especifico 9,4, quero dizer que devo pegar 4 caracteres a partir da posição 9, no exemplo: 0024

Por fim, utilizo CAST, RIGHT e CONCATS para formatar o campo, e em casos que tenha 0 (ZEROS) a esquerda, que os mesmos sejam considerados.

Enjoy!

Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: