O Gerador De CPF O Gerador De CPF

Formatar CPF em SQL — PostgreSQL, MySQL e SQL Server

Funções SQL para aplicar e remover a máscara XXX.XXX.XXX-XX em CPFs armazenados como texto ou número nos três principais bancos de dados.

PostgreSQL

Aplicar máscara

Com OVERLAY e concatenação:

SELECT
  OVERLAY(
    OVERLAY(
      OVERLAY(cpf PLACING '-' FROM 10)
    PLACING '.' FROM 7)
  PLACING '.' FROM 4)
FROM clientes;

Ou com CONCAT e SUBSTRING:

SELECT CONCAT(
  SUBSTRING(cpf FROM 1 FOR 3), '.',
  SUBSTRING(cpf FROM 4 FOR 3), '.',
  SUBSTRING(cpf FROM 7 FOR 3), '-',
  SUBSTRING(cpf FROM 10 FOR 2)
) AS cpf_formatado
FROM clientes;

Remover máscara

SELECT REPLACE(REPLACE(cpf_formatado, '.', ''), '-', '') AS cpf_limpo
FROM clientes;

Ou com regexp_replace:

SELECT regexp_replace(cpf_formatado, '\D', '', 'g') AS cpf_limpo
FROM clientes;

MySQL

Aplicar máscara

Com CONCAT e SUBSTRING:

SELECT CONCAT(
  SUBSTRING(cpf, 1, 3), '.',
  SUBSTRING(cpf, 4, 3), '.',
  SUBSTRING(cpf, 7, 3), '-',
  SUBSTRING(cpf, 10, 2)
) AS cpf_formatado
FROM clientes;

Com INSERT (insere caracteres nas posições):

SELECT INSERT(INSERT(INSERT(cpf, 10, 0, '-'), 7, 0, '.'), 4, 0, '.') AS cpf_formatado
FROM clientes;

Remover máscara

SELECT REPLACE(REPLACE(cpf_formatado, '.', ''), '-', '') AS cpf_limpo
FROM clientes;

SQL Server

Aplicar máscara

Com CONCAT e SUBSTRING:

SELECT CONCAT(
  SUBSTRING(cpf, 1, 3), '.',
  SUBSTRING(cpf, 4, 3), '.',
  SUBSTRING(cpf, 7, 3), '-',
  SUBSTRING(cpf, 10, 2)
) AS cpf_formatado
FROM clientes;

Com FORMAT (CPF armazenado como BIGINT):

SELECT FORMAT(cpf, '000\.000\.000\-00') AS cpf_formatado
FROM clientes;

Remover máscara

SELECT REPLACE(REPLACE(cpf_formatado, '.', ''), '-', '') AS cpf_limpo
FROM clientes;

Qual abordagem usar?

CenárioRecomendação
CPF como CHAR(11)CONCAT + SUBSTRING (funciona em todos)
CPF como BIGINTFORMAT (SQL Server) ou TO_CHAR (PostgreSQL)
Remover máscaraREPLACE encadeado (universal)
Limpeza em massaregexp_replace (PostgreSQL)

Dica: armazene o CPF sempre sem formatação (CHAR(11) ou VARCHAR(11)) e aplique a máscara apenas na exibição. Isso simplifica buscas, índices e validações. Para garantir que os dados estejam corretos antes de gravar, valide o CPF no momento do cadastro. Precisa de CPFs para testar essas queries? Use o gerador de CPF.

Veja também: formatar CPF no Excel.