Como extrair parte de um texto em um campo SQL?
Manipular strings no SQL é essencial para formatar e extrair informações específicas. Funções como SUBSTRING(), LEFT() e RIGHT() ajudam a obter partes de um texto armazenado em colunas de bancos de dados.
Usando SUBSTRING para extrair parte de um texto
A função SUBSTRING() permite extrair uma parte do texto informando a posição inicial e a quantidade de caracteres desejada:
SELECT SUBSTRING(nome, 1, 5) AS nome_abreviado FROM clientes;
Aqui, os primeiros 5 caracteres da coluna nome
serão extraídos.
Usando LEFT para obter os primeiros caracteres
Se quisermos pegar os n primeiros caracteres de um texto, usamos LEFT():
SELECT LEFT(nome, 3) AS iniciais FROM clientes;
Essa consulta retorna os 3 primeiros caracteres de cada nome.
Usando RIGHT para pegar os últimos caracteres
Se precisarmos dos últimos n caracteres, utilizamos RIGHT():
SELECT RIGHT(email, 10) AS dominio FROM usuarios;
Isso retorna os últimos 10 caracteres do e-mail, que podem incluir o domínio.
Extraindo partes de textos formatados
Se tivermos um campo armazenando CPF no formato 123.456.789-00
e quisermos pegar apenas os 3 primeiros números:
SELECT LEFT(cpf, 3) AS primeira_parte FROM clientes;
Isso retorna apenas os três primeiros números do CPF.
Cuidados ao extrair textos no SQL
- Certifique-se de que a coluna contém valores padronizados para evitar erros na extração.
- Algumas funções podem ter nomes diferentes dependendo do banco de dados (exemplo:
SUBSTRING()
no MySQL eSUBSTR()
no Oracle e PostgreSQL). - Para textos grandes, prefira consultas otimizadas para evitar impactos na performance.
Quando extrair partes de texto é útil no SQL?
Extrair partes de textos em SQL é uma funcionalidade muito utilizada em sistemas que lidam com cadastros, logs e relatórios. Em bancos de dados que armazenam e-mails, por exemplo, é comum precisar separar o nome do usuário e o domínio. Outro exemplo comum é a extração de partes de documentos, como CPF e CNPJ, para exibições formatadas. Ao manipular textos grandes, é importante garantir que a consulta seja eficiente, pois a extração excessiva pode gerar lentidão em grandes volumes de dados.
Algumas aplicações:
- Separação de nomes e sobrenomes em cadastros
- Extração do domínio de e-mails
- Formatação de números de documentos como CPF e CNPJ
- Obtenção de partes específicas de strings padronizadas
- Filtragem de informações para relatórios personalizados
Dicas para quem está começando
- Use
SUBSTRING(coluna, posição, tamanho)
para extrair uma parte do texto - Utilize
LEFT()
para obter os primeiros caracteres eRIGHT()
para os últimos - Verifique se os textos seguem um padrão antes de extrair informações
- Para dados formatados, como CPF e telefones, sempre teste antes de executar em produção
- Considere índices e otimizações ao aplicar essas funções em tabelas grandes
Contribuições de Fernando Albuquerque