Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rdantas

Função Replace

Recommended Posts

Tenho um programa que gera relatórios, em que o usuário digita um intervalo de datas num input.

O usuário digita, por exemplo, "0411-0511" para retornar boletos de abril e maio de 2011.

Então, minha consulta ficaria assim:

 

SELECT * tabela WHERE campo IN ('0411-0511'), o que não me retornaria nada.

 

Então, eu tenho que substituir o "-" por "','" para que minha consulta funcione corretamente. Ficaria desta maneira:

 

SELECT * tabela WHERE campo IN ('0411', '0511')

 

Então vamos ao problema.

Tento utilizar a função replace para substituir o "-" por "','", porém a consulta não me retorna nada.

 

SELECT * FROM tabela WHERE campo IN (('\'' || (replace('0411-0511', '-', '\',\'')) || '\''))

 

Quando eu uso essa função sozinha, retorna corretamente o que eu quero. select (('\'' || (replace('0411-0511', '-', '\',\'')) || '\''))

Porém, na minha consulta, ela não retorna meus resultados.

 

Nessa função eu concatenei ' + 0411','0511 + '

 

Alguém tem alguma sugestão de como resolver esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia mudar no sistema.. deixando input separadas entre a datainicio e datafim...

 

SELECT * tabela WHERE campo BETWEEN datainicio AND datafim;

 

assim já não exige "muito" do usuario...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.