Converter um CPF armazenado como string para bigint no SQL pode parecer simples, mas exige atenção aos detalhes, como a remoção de caracteres não numéricos e o tratamento de valores nulos. Este método é o mais eficaz porque garante a integridade dos dados e evita erros de conversão comuns.
Antes de converter para bigint, é essencial remover pontos, hífens e outros caracteres que não sejam dígitos. Use a função REPLACE ou REGEXP_REPLACE, dependendo do seu banco de dados.
REPLACE(REPLACE(REPLACE(cpf, '.', ''), '-', ''), '/', '')
Após limpar a string, converta o resultado para o tipo bigint. Em alguns bancos, como SQL Server, use CAST; em outros, como PostgreSQL, use ::bigint.
CAST(REPLACE(REPLACE(REPLACE(cpf, '.', ''), '-', ''), '/', '') AS BIGINT)
É importante garantir que valores nulos ou strings vazias não causem erros. Use COALESCE ou CASE para retornar NULL quando apropriado.
CASE
WHEN LENGTH(REPLACE(REPLACE(REPLACE(cpf, '.', ''), '-', ''), '/', '')) = 11
THEN CAST(REPLACE(REPLACE(REPLACE(cpf, '.', ''), '-', ''), '/', '') AS BIGINT)
ELSE NULL
END
| CPF (String) | CPF (BigInt) |
|---|---|
| 123.456.789-09 | 12345678909 |
| 987-654-321-00 | 98765432100 |
| 111.222.333-44 | 11122233344 |
| (null) |
Com este método, você converte CPFs de string para bigint de forma segura e eficiente, eliminando caracteres indesejados e garantindo a consistência dos dados no seu banco SQL.