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;
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:
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:
4ºExemplo
Queremos exibir os 6 primeiros caracteres dos nomes dos alunos.
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.
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.
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:
4º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.
Muito bom o post.Bem o que eu tinha dúvidas.
ResponderExcluir