Welinton Postado Fevereiro 29, 2008 Denunciar Share Postado Fevereiro 29, 2008 Senhores estou com um problemão.Tenho dois registros em uma tabela.Imaginem a seguinte situação.ID ID_CONTA CEP1 5 13660-0002 5 14000-000Quando faço o select para saber se o cep que estou vendo é desta conta faço desta forma.select id_conta where <tabela> where cep >= '13700-000' and cep <= '13700-000'Podem reparar que a faixa do cep esta na tabela mas não retorna nada.Quando faço o select assim retorna o id da conta.select id_conta where <tabela> where cep >= '13660-000' and cep <= '14000-000'Creio que é porque o valor do select é igual o valor da tabela.O campo esta em varchar, fiz um teste com inteiro e também deu este problema, lembrando que não posso trabalhar com inteiropois é cep e não posso descartar Zeros a esquerda.Alguém pode me ajudar?Como devo proceder?Valeu desde já. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 29, 2008 Denunciar Share Postado Fevereiro 29, 2008 Oi, Welinton!Eu não entendi o select id_conta where tabela where cep >= '13700-000' and cep <= '13700-000' Não seria assim? select id_conta FROM tabela where cep >= '13700-000' and cep <= '13700-000' Se eu estiver certo, então o melhor seria escrever assim:select id_conta FROM tabela where cep BETWEEN '13700-000' and '13700-000' Link para o comentário Compartilhar em outros sites More sharing options...
0 Welinton Postado Fevereiro 29, 2008 Autor Denunciar Share Postado Fevereiro 29, 2008 Oi, Welinton!Eu não entendi o select id_conta where tabela where cep >= '13700-000' and cep <= '13700-000' Não seria assim? select id_conta FROM tabela where cep >= '13700-000' and cep <= '13700-000' Se eu estiver certo, então o melhor seria escrever assim:select id_conta FROM tabela where cep BETWEEN '13700-000' and '13700-000'Exatamente isso que eu quero amigo.Mas já fiz isso também e não retorna nada.Busco desta forma select id_conta FROM bolsa_conta_cep where cep BETWEEN '14801-000' and '14801-000';Se eu buscar desta forma retorna o id.select id_conta FROM bolsa_conta_cep where cep BETWEEN '14800-000' and '14801-000';Porque existe o registro 14800-000. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 29, 2008 Denunciar Share Postado Fevereiro 29, 2008 Por que você não usa o sinal de IGUAL ou o LIKE, tal como:select id_conta FROM bolsa_conta_cep where cep = '14800-000'; ouselect id_conta FROM bolsa_conta_cep where cep LIKE '14800-000%'; Link para o comentário Compartilhar em outros sites More sharing options...
0 Welinton Postado Fevereiro 29, 2008 Autor Denunciar Share Postado Fevereiro 29, 2008 Por que você não usa o sinal de IGUAL ou o LIKE, tal como:select id_conta FROM bolsa_conta_cep where cep = '14800-000'; ouselect id_conta FROM bolsa_conta_cep where cep LIKE '14800-000%';Porque preciso saber se a conta pode ver um cep entre 14000-000 até 15000-000Ou seja select id_conta from tabela where cep >= 14500-000 and cep <= 14500-000Valeu Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Welinton
Senhores estou com um problemão.
Tenho dois registros em uma tabela.
Imaginem a seguinte situação.
ID ID_CONTA CEP
1 5 13660-000
2 5 14000-000
Quando faço o select para saber se o cep que estou vendo é desta conta faço desta forma.
select id_conta where <tabela> where cep >= '13700-000' and cep <= '13700-000'
Podem reparar que a faixa do cep esta na tabela mas não retorna nada.
Quando faço o select assim retorna o id da conta.
select id_conta where <tabela> where cep >= '13660-000' and cep <= '14000-000'
Creio que é porque o valor do select é igual o valor da tabela.
O campo esta em varchar, fiz um teste com inteiro e também deu este problema, lembrando que não posso trabalhar com inteiro
pois é cep e não posso descartar Zeros a esquerda.
Alguém pode me ajudar?
Como devo proceder?
Valeu desde já.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados