PostgreSql - Função substring
Tecnologia da Informação

PostgreSql - Função substring


A função substring retorna parte (um pedaço) de uma string. Seu retorno depende dos argumentos passados. Os argumentos passados podem ser:

  • posição de caracteres de uma string;
  • expressão regular no padrão POSIX;
Neste artigo serão demostrados 6 exemplos, caso tenha interesse faça o download dos scripts ou veja no GitHub.

SINTAXE

substring(string from x for y)

Onde:
  • x: posição inicial da string.;
  • y: quantidade de caracteres que serão exibidos a partir da posição inicial;

1º Exemplo

Queremos extrair os 3 primeiros caracteres da string "Rio Grande do Sul" a partir da primeira posição.

SELECT SUBSTRING('Rio Grande do Sul' from 1 for 3;

Após a execução da sentença, temos o resultado exibido na imagem abaixo:



2º Exemplo

Queremos extrair os 10 primeiros caracteres da string "Rio Grande do Sul" a partir da primeira posição.

SELECT SUBSTRING('Rio Grande do Sul' from 1 for 10) ;

Após a execução da sentença, temos o resultado exibido na imagem abaixo:



Observação: o espaço também é um carácter.

3º Exemplo

Queremos extrair os 9 primeiros caracteres da string "Rio Grande do Sul" a partir da quinta posição.

SELECT SUBSTRING('Rio Grande do Sul' from 5 for 9) ;

Após a execução da sentença, temos o resultado exibido na imagem abaixo:



Exemplo

Queremos exibir os 6 primeiros caracteres dos nomes dos alunos. 
Para exibir os caracteres, vamos utilizar a função substring na coluna "nome" da tabela "alunos".
A tabela alunos é exibida abaixo:


SELECT
cod_matricula,
nome,
SUBSTRING(nome FROM 1 FOR 6)
FROM alunos;

Após a execução da sentença, obtemos o resultado exibido abaixo:


Quando utilizamos a função substring, o nome da coluna passa a ter o mesmo nome da função. Se quisermos que a coluna tenha um outro nome devemos criar um alias (apelido) depois do "AS". 
Neste exemplo, eu preferi ela se chame "caracteres_iniciais", então coloquei "caracteres_iniciais" depois do "AS".

SELECT
cod_matricula,
nome,
SUBSTRING(nome FROM 1 FOR 6) AS caracteres_iniciais
FROM alunos;

Após a execução da sentença, o nome da coluna será exibido como caracteres iniciais.




Também é possível, passar como argumento na função substring uma expressão regular do padrão POSIX.
A expressão regular é uma forma de procurar um trecho em determinadas posições como no início ou no fim de uma linha ou palavra. Aqui serão apresentados 2 exemplos de expressão regular. 
Há um livro muito bom sobre expressões regulares, o seu título é "Expressões Regulares - Guia de Consulta Rápida" do autor "Aurélio Marinho Vargas" editora "Novatec", este livro também está disponível na internet de forma gratuita.


SINTAXE


substring(string from expressão_regular)

5º Exemplo

Queremos extrair o prefixo dos telefones residenciais (4 primeiros dígitos) dos clientes de uma loja.
Para extrairmos o prefixo vamos utilizar a função substring na coluna "telefone" da tabela "contatos". A tabela contatos é exibida na imagem abaixo:


SELECT
cliente_id, 
telefone,
substring(telefone from '^[0-9]{4}')
FROM contatos;

Observações

O acento circunflexo ^ indica que a string começa com determinado(s) caracter(es). 
No nosso caso, começa com dígitos no intervalo de zero a nove [0-9]. Entre colchetes colocamos a lista de caracteres que podem ser utilizados.
São extraídos 4 dígitos: {4}. A quantidade de dígitos deve ser colocada entre chaves {}.

Após a execução da sentença, temos o resultado exibido na imagem abaixo:


6º Exemplo

Queremos extrair os 4 últimos dígitos dos telefones dos clientes de uma loja.
Vamos utilizar a função substring na coluna "telefone" da tabela "contatos". A tabela contatos é exibida na imagem abaixo:


SELECT
cliente_id, 
telefone,
substring(telefone from '[0-9]{4}$')
FROM contatos;

Observações

O cifrão $ indica que a string termina com determinado(s) caracter(es). 
No nosso caso, termina com dígitos no intervalo de zero a nove [0-9]. Entre colchetes colocamos a lista de caracteres que podem ser utilizados.
São extraídos 4 dígitos: {4}. A quantidade de dígitos deve ser colocada entre chaves {}.

Após a execução da sentença, temos o resultado exibido na imagem abaixo:


Sua opinião é muito importante, criticas ou sugestões serão bem-vindas.



loading...

- Postgresql - Formatar Cpf Com Regexp_replace
Neste artigo, vamos mostrar 3 exemplos de como utilizar a função REGEXP_REPLACE para formatar o CPF.Veja qual o exemplo é mais fácil para você, eu considero o 3º exemplo o mais fácil de ser utilizado. Caso tenha interesse, veja o script no github,...

- Postgresql - Formatar Cep Com Regexp_replace
Neste artigo, vamos mostrar 3 exemplos de como utilizar a função REGEXP_REPLACE para formatar CEP. Veja qual a forma é mais simples para você, eu considero a do 3º exemplo. Caso tenha interesse, veja o script no github, faça o download ou execute...

- 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,...

- Postgresql - Funçoes Lower, Upper E Initcap
Este artigo apresenta exemplos da utilização de três funções de manipulação de string do PostgreSql:lower;upper;initcap; Caso tenha interesse faça o download dos exemplos ou veja os scripts no GitHub. Função lower A função lower converte...

- Mysql - Extrair Data Com Extract
A função extract extrai parte de uma data ou intervalo. Vamos descrever 3 exemplos com a função extract. 1º Exemplo: vamos extrair partes da data da coluna "data_exame" da tabela "tb_exame". A tabela contém informações da realização...



Tecnologia da Informação








.