Intervalo de dados dentro de um select
Estou gerando um relatório que faz um pesquisa dentro de um intervalo de dados, exemplo:
Valor inicial = 5
Valor final = 10
Ele deverá gerar o relatório dentro destes registros, mas eu tenho um problema:
O Campo do banco de dados ´Valor´ é um VARCHAR, porque?
Eu tenho valores que variam de ´A´ a ´Z´, exemplo:
Valor inicial = ´A´
Valor final = ´F´
Descobri uma função do Firebird que faz o sequinte:
Mas não deu certo, ele não procurou dentro deste intervalo, acredito que ele varreu todo o banco, pq deu erro justamente num valor de conteudo ´A´ e o intervalo que passei não está dentro de ´A´.
Qunato ao select que faz com intervalos ´texto´ deu certo:
SELECT * FROM PROPRIETARIO
WHERE VALOR_PRO >= ´A´
AND VALOR_PRO <= ´F´
Como resolver com intervalos ´numericos´??
Obrigada.
Valor inicial = 5
Valor final = 10
Ele deverá gerar o relatório dentro destes registros, mas eu tenho um problema:
O Campo do banco de dados ´Valor´ é um VARCHAR, porque?
Eu tenho valores que variam de ´A´ a ´Z´, exemplo:
Valor inicial = ´A´
Valor final = ´F´
Descobri uma função do Firebird que faz o sequinte:
SELECT * FROM PROPRIETARIO WHERE cast(VALOR1_TIPO_PRO as numeric(4)) >= 1 AND cast(VALOR1_TIPO_PRO as numeric(4)) <= 20
Mas não deu certo, ele não procurou dentro deste intervalo, acredito que ele varreu todo o banco, pq deu erro justamente num valor de conteudo ´A´ e o intervalo que passei não está dentro de ´A´.
Qunato ao select que faz com intervalos ´texto´ deu certo:
SELECT * FROM PROPRIETARIO
WHERE VALOR_PRO >= ´A´
AND VALOR_PRO <= ´F´
Como resolver com intervalos ´numericos´??
Obrigada.
Celamar
Curtidas 0
Respostas
Rjun
15/09/2005
Que tipo de informação é essa, onde você guarda letras e números e quer fazer pesquisa por intervalo?
GOSTEI 0
Celamar
15/09/2005
Quadra de cemiterios
GOSTEI 0
Rjun
15/09/2005
Você pode ter valores que mesclam letras e números, como 5A, 2F?
GOSTEI 0
Motta
15/09/2005
que me conste o between funciona com alfa
select *
from tabela
where chave between ´A´ and ´B´
select *
from tabela
where chave between ´A´ and ´B´
GOSTEI 0
Celamar
15/09/2005
Para conhecimento, consegui resolver da seguinte forma:
SELECT * FROM PROPRIETARIO WHERE cast(VALOR_PRO as numeric(4)) >= 1 AND cast(VALOR_PRO as numeric(4)) <= 20 AND UPPER(VALOR_PRO) <= ´A´ ORDER BY NOME_PRO
GOSTEI 0