[firebase-br] Condição de comparação (String)

Eduardo Bahiense eduardo em icontroller.com.br
Qua Fev 20 10:13:07 -03 2008


Olá Aron

Você tem que se basear nos casos comuns de valores inválidos.
Você deve começar por dar um 'select distinct cpf' para analisar os 
padrões de mau preenchimento.
O próximo passo é montar um sql que traga todos, ou vá limpando. Ex.:

SELECT * FROM TABELA
WHERE
   CPF IS NULL
   OR CPF = ''
   OR CPF CONTAINING '_'
   OR CPF CONTAINING 'A'

Isto deve te trazer a maioria dos seus casos de mau preenchimento. Aí vc 
analisa e, se for o caso, excuta:

UPDATE TABELA
SET CPF = NULL
WHERE
   CPF = ''
   OR CPF CONTAINING '_'
   OR CPF CONTAINING 'A'

Agora vamos verificar os com máscara errada:
SELECT * FROM TABELA
WHERE
   CPF IS NOT NULL
   AND
     ( 	
      SUBSTRING(CPF FROM 4 FOR 1 <> '.')
      OR SUBSTRING(CPF FROM 8 FOR 1 <> '.')
      OR SUBSTRING(CPF FROM 12 FOR 1 <> '-')
      OR SUBSTRING(CPF FROM 14 FOR 1 = '')
     )
Analise, se for o caso, UPDATE para NULL e continue o processo.

Podem haver casos em que o CPF esta com 14 digitos e sem formatação de 
máscara. Daí dá para dar um UPDATE inserindo os caracteres da máscara 
nas posições corretas com substring(1 for 3)||'.'||substring(4 for 3) ...

Depois de tudo é só pedir WHERE CPF IS NULL e pronto!
Não esqueça de fazer um backup de tudo antes !!!!!!!!

Abs

Eduardo

Felipe Aron escreveu:
> Olá pessoal como vai ?
> Tenho o seguinte problema:
> 
> Tenho uma tabela de vendedores que possui o campo CPF, só que a base está
> "porca", e o campo não está formatado corretamente, ou seja, tem alguns
> registros que possui só números, outros com pontos e tracos, outros escritos
> "NAO TEM", outros somente com a formatação (___.___.___-__) e outros em
> branco...
> 
> Quero criar uma SQL que retorne pra mim todos os vendedores que não tem CPF,
> ou seja, que não tem o campo preenchido corretamente com os números.
> O resultado dessa SQL terá que trazer todos com o campo CPF em branco, nulo
> e que só tenham formatação....
> 
> 
> OBS: Não quero validar o CPF, apenas trazer os que não tem os números no
> campo.
> 





Mais detalhes sobre a lista de discussão lista