Translate

sábado, 13 de setembro de 2014

Postgresql - função LPAD

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

O script dos exemplos, também estão no GitHub.

SINTAXE

LPAD (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 hifen (-) a esquerda 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,
LPAD (nome_produto,10, '-') AS nome_produto_com_hifen
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 hífen (-), poderiamos utilizar qualquer outro caractere alfanumérico ou caractere especial.
Por exemplo: uma ou mais letras, dígitos, espaços, asterisco entre outros.
  
2º Exemplo

Preencher com zeros "0" a esquerda, 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 LPAD completa uma string, antes de utilizarmos a função LPAD, 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
LPAD (CAST(codigo_produto AS VARCHAR), 5, '0') 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 zero  para completar 5 dígitos;
  • O número     438 tem   3 dígitos, e foi preenchido com 2 zeros para completar 5 dígitos;  
  • O número       22 tem   2 dígitos, e foi preenchido com 3 zeros para completar 5 dígitos;
  • O número 16547 tem   5 dígitos, logo não foi preenchido com zeros, pois já contém 5 dígitos;
Aprenda também a utilizar a função rpad:
http://jquerydicas.blogspot.com.br/2017/07/postgresql-funcao-rpad.html

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

domingo, 7 de setembro de 2014

Postgresql - Função replace

Neste artigo, vamos mostrar 3 exemplos da utilização da função replace. O script dos exemplos também estão disponíveis no Git Hub

Podemos utilizar a função replace para substituir:
  • uma ou mais palavras de uma de string;  
  • um ou mais caracteres de uma string; 
SINTAXE
REPLACE(COLUNA, DE, PARA)

  • COLUNA: coluna da tabela;
  • DE: o conteúdo que vamos substituir;
  • PARA: o novo conteúdo;
1º Exemplo

Substituir a abreviatura VW  pela palavra Wolkswagen.  
Neste exemplo, vamos utilizar a coluna "modelo_veículo" da tabela "tb_veículo". Veja a tabela a seguir:

tb_veiculo
Solução:

Para fazer a substituição utilizamos a sentença abaixo:

SELECT
modelo_veiculo,
REPLACE(
modelo_veiculo, '
VW', 'Wolkswagen') AS substituicao  
FROM tb_veiculo


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




2º Exemplo

Substituir:
  • a abreviatura VW  pela palavra Wolkswagen;
  • a abreviatura GM  pela palavra General Motors; 
Neste exemplo, também vamos utilizar a coluna "modelo_veículo" da tabela "tb_veículo". 

tb_veiculo
Solução:

Para fazer a substituição, além da função, REPLACE vamos utilizar a condição "CASE  WHEN" para substituir a sigla de acordo com a situação. 

Obs: Caso tenha interesse, veja o artigo: PostgreSql - Exemplo CASE WHEN

Veja a sentença abaixo:

SELECT
modelo_veiculo,
CASE
    WHEN (modelo_veiculo LIKE '%
VW%') 
        THEN REPLACE(modelo_veiculo, 'VW', 'Wolkswagen')
   
WHEN (modelo_veiculo LIKE '%GM%') 
       THEN REPLACE(modelo_veiculo, 'GM', 'General Motors')   
END  AS substituicao
FROM tb_veiculo


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


3 º Exemplo

Substituir o caractere "o" pelo caractere "a" de uma mensagem. Neste exemplo, vamos utilizar a coluna "mensagem" da tabela "tb_mensagem". Veja a tabela a seguir:

tb_mensagem

Para exibir a substituição utilizamos a sentença abaixo:

SELECT
data,
mensagem, 
REPLACE(
mensagem, 'o', 'a') AS nova_mensagem
FROM tb_mensagem;


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


Deixe o seu comentário ou sugestão sobre este artigo.
Gostou? Curta a nossa página.