Dúvida em Query

2 respostas
J

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

2 Respostas

C

“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,

J

Obrigado… ajudou e muito!

outra dúvida:

  • como faço para comparar com duas colunas unidas, ex:

select * from tabela where coluna1 = (coluna2 + coluna3)

onde:

(coluna2 + coluna3) = duas colunas unidas

[ ]

Criado 31 de outubro de 2007
Ultima resposta 1 de nov. de 2007
Respostas 2
Participantes 2