Intervalo de dados dentro de um select

Delphi

15/09/2005

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:


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

Celamar

Curtidas 0

Respostas

Rjun

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

Celamar

15/09/2005

Quadra de cemiterios


GOSTEI 0
Rjun

Rjun

15/09/2005

Você pode ter valores que mesclam letras e números, como 5A, 2F?


GOSTEI 0
Motta

Motta

15/09/2005

que me conste o between funciona com alfa


select *
from tabela
where chave between ´A´ and ´B´


GOSTEI 0
Celamar

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
POSTAR