SQL: Cep´s aproximados
Olá pessoal, tudo bem?
Estou desenvolvendo um software e tem um SQL que esta me tirando do serio...
eu gostaria de fazer um select com ceps aproximados, o cliente digita um cep e no select mostra os endereços aproximados do mesmo.
eu andei dando uma estudada na estrutura do Cep, mas deixo aqui minha dúvida, talvez alguém já passou por isso e pode me ajudar....
um abraço,
Marcelo
Estou desenvolvendo um software e tem um SQL que esta me tirando do serio...
eu gostaria de fazer um select com ceps aproximados, o cliente digita um cep e no select mostra os endereços aproximados do mesmo.
eu andei dando uma estudada na estrutura do Cep, mas deixo aqui minha dúvida, talvez alguém já passou por isso e pode me ajudar....
um abraço,
Marcelo
Marcelo Silva
Curtidas 0
Respostas
Emerson Nascimento
30/09/2008
o CEP é sequencial e possui uma estrutura bem clara e com todas as especificações disponibilizadas no [url=http://www.correios.com.br/cep/cep_estrutura.cfm]site dos correios[/url]
o que você precisa é saber quantos endereços quer retornar.
imagine um CEP informado pelo cliente. se eu quiser exibir os 10 endereços mais próximos, basta selecionar os cinco endereços com CEP imediatamente ´menor´ e os cinco endereços com CEP imediatamente ´maior´.
algo assim:
- busca pelo CEP informado
select * from tabela
where cep = :cep
- busca pelos cinco endereços de CEP ´menor´ que o informado
select first 5 * from tabela
where cep < :cep
order by cep desc
- busca pelos cinco endereços de CEP ´maior´ que o informado
select first 5 * from tabela
where cep > :cep
order by cep
espero que seja isso que você procura.
o que você precisa é saber quantos endereços quer retornar.
imagine um CEP informado pelo cliente. se eu quiser exibir os 10 endereços mais próximos, basta selecionar os cinco endereços com CEP imediatamente ´menor´ e os cinco endereços com CEP imediatamente ´maior´.
algo assim:
- busca pelo CEP informado
select * from tabela
where cep = :cep
- busca pelos cinco endereços de CEP ´menor´ que o informado
select first 5 * from tabela
where cep < :cep
order by cep desc
- busca pelos cinco endereços de CEP ´maior´ que o informado
select first 5 * from tabela
where cep > :cep
order by cep
espero que seja isso que você procura.
GOSTEI 0
Robinhocne
30/09/2008
ou assim...
eu busco por cpf e ai vai aproximando os Clientes que eu tenho com o numero da pesquisa
// Busca por Cpf if rboIdx.ItemIndex = 2 then With QryBusca Do begin Close; SQL.Clear; SQL.Add(´Select * From Clientes´); SQL.Add(´Where Upper(Cpf)´); SQL.Add(´Like Upper(´´´+TxtLoc.Text+´¬´´)´); //Iniciado por Open; end;
eu busco por cpf e ai vai aproximando os Clientes que eu tenho com o numero da pesquisa
GOSTEI 0