seabeck.pages.dev

Como converter CPF de string para bigint no SQL?

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.

Pré-requisitos

Passo 1: Remover caracteres não numéricos do CPF

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, '.', ''), '-', ''), '/', '')

Passo 2: Converter a string limpa para bigint

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)

Passo 3: Tratar valores nulos ou inválidos

É 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

Exemplo Prático

CPF (String) CPF (BigInt)
123.456.789-09 12345678909
987-654-321-00 98765432100
111.222.333-44 11122233344
(null)

Conclusão

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.