“JNet”:
Boa tarde,
gostaria de fazer uma pesquisa via jdbc onde o converto os dados de entrada em um string sem espaços, ex:
“Dados da pesquisa” >> obtenho após converção >> “Dadosdapesquisa”
e gostaria que esses dados sem epaços fossem comparados com os dados que estão na base de dados, mas na base de dados estão todos com espaço… dae nunca vai achar, a saída que tenho é converter as colunas sem epaço também… isso provisóriamente, somente para realizar a pesquisa e pronto… estou usando o seguinte, mas não estou obtendo o resultado que gostaria
SELECT distinct(ep1.titEmp), ep1.aunEmp, ep1.claEmp, ep1.notEmp
FROM emprestimo ep1
WHERE EXISTS (SELECT replace(ep.titEmp, ’ ‘, ‘’), replace(ep.aunEmp,’ ‘,’’), replace(ep.claEmp,’ ‘,’’), replace(ep.notEmp,’ ‘,’’)
from emprestimo ep
where ep.titEmp like ‘Administração%’ AND uniEmp = ‘Porto Alegre’)
alguma sujestão?
Obrigado
JNet,
Não entendi qual o objetivo disso que vc está fazendo mas mesmo assim vamos lá.
Veja bem!
O que vc pretende com esses replaces aí. Não faz diferença alguma tê-los ou não.
replace(ep.titEmp, ' ', ''), replace(ep.aunEmp,' ',''), replace(ep.claEmp,' ',''), replace(ep.notEmp,' ','')
A cláusula EXISTS espera um verdadeiro ou falso, ou seja, nesse seu segundo select, se ele encontrar registros que satisfação a condição.
ep.titEmp like 'Administração%' AND uniEmp = 'Porto Alegre'
A base retornará pra todos os empréstimos, caso contrário não retornará nada.
Outra coisa! O que vc espera que aconteça se usar o distinct deste modo que usou.
SELECT distinct(ep1.titEmp), ep1.aunEmp, ep1.claEmp, ep1.notEmp......
Se vc espera que ele retorne pra somente os que são diferentes entre os resultados de ep1.titEmp, está enganado pois o distinct irá trazer os diferentes na composição entre os 4 campos ep1.titEmp, ep1.aunEmp, ep1.claEmp, ep1.notEmp.
Veja um exemplo que talvez faça o que vc precisa… Não tenho certeza se é isso, porque como falei, não entendi o que vc pretente… Este exemplo é apenas uma suposição para seu problema.
select c.nome
from cliente c
where c.nome = (select replace(c1.nome, ' ', '')
from cliente c1
where c1.nome like 'Aparecido%')
Bom… Espero ter esclarecido alguma coisa.
@braços,