Translate

sábado, 29 de julho de 2017

Postgresql - Função rpad

Neste artigo, vamos mostrar 2 exemplos, da utilização da função RPAD.
 
Utilizamos a função RPAD para completar uma string do lado direito com determinado(s) caractere(s).

Veja o script dos exemplos no GitHub ou faça o download no Google Drive.

SINTAXE

RPAD (string, posicao_de_caracteres, 'caracter_para_preechimento')
  • string: sequëncia de caracteres;  
  • posicao_de_caracteres: indica até que posição a string será preenchida;
  • caracter_para_preechimento: caractere(s) utilizado(s) para o preenchimento, estes caracteres devem estar entre aspas;
1º Exemplo

Completar com o asterisco (*) a direita dos nomes dos produtos até a 10ª posição.  
Neste exemplo, vamos utilizar a coluna "nome_produto" tabela "tb_produto", exibida na imagem abaixo.


tb_produto
Solução

SELECT
nome_produto,
RPAD (nome_produto,10, '*') AS nome_produto_com_asterisco
FROM tb_produto;

Após a execução da sentença, teremos o seguinte resultado:



Observações
  • lápis:        tem 5  caracteres e foi preenchida com 5 caracteres para completar as 10 posições;
  • caderno:  tem 7  caracteres e foi preenchida com 3 caracteres para completar as 10 posições;
  • borracha: tem 8 caracteres e foi preenchida com 2 caracteres para completar as 10 posições;
  • cartolina: tem 9 caracteres e foi preenchida com 1 caractere  para completar as  10 posições;
No lugar do asterisco (*), poderíamos utilizar qualquer outro caractere alfanumérico ou caractere especial.
Por exemplo: uma ou mais letras, dígitos, espaços, hífen entre outros.
  
2º Exemplo

Preencher com asterisco (*) a direita, até a 5ª posição, os códigos dos produtos.
Neste exemplo, vamos utilizar a coluna "codigo_produto" tabela "tb_produto", exibida na imagem abaixo.

tb_produto

Solução


Como a função RPAD completa uma string, antes de utilizarmos a função RPAD, neste exemplo, devemos utilizar a função CAST para converter a coluna codigo_produto que é do tipo integer (número inteiro) para string (CHARACTER VARYING ou VARCHAR como é mais conhecido).

SELECT
RPAD (CAST(codigo_produto AS VARCHAR), 5, '*') AS codigo_produto, 
nome_produto
FROM tb_produto;

Após a execução da sentença, teremos o seguinte resultado:



Observações
  • O número   8426 tem   4 dígitos, e foi preenchido com 1 * para completar 5 dígitos;
  • O número     438 tem   3 dígitos, e foi preenchido com 2 * para completar 5 dígitos;  
  • O número       22 tem   2 dígitos, e foi preenchido com 3 * para completar 5 dígitos;
  • O número 16547 tem   5 dígitos, logo não foi preenchido com *, pois já contém 5 dígitos;

Aprenda também a utiliza a função lpad:

http://jquerydicas.blogspot.com.br/2014/09/postgresql-funcao-lpad.html

Deixe o seu comentário ou sugestão.
Gostou?  Siga no Google +  ou Facebook

Nenhum comentário:

Postar um comentário