Valeu a todos!
2009/7/31 Pablo Câmara <pscam...@gmail.com> > Flaviano, acho que é exatamente isso! > select distinct cod from teste t1 > where exists (select * from teste t2 where t2.cod = t1.cod and t2.vlr = > '3') > and exists (select * from teste t2 where t2.cod = t1.cod and t2.vlr = > '1') > > Obrigado! > > > > 2009/7/31 Flaviano, Wellington (GE Money) <wellington.flavi...@ge.com> > > >> >> Utiliza o exists, where exits coluna = 1 ... And exists coluna =3 ... >> Acredito que funciona... >> >> -----Original Message----- >> From: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>[mailto: >> oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>] On Behalf >> Of Pablo Câmara >> Sent: Friday, July 31, 2009 3:07 PM >> To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> >> Subject: Re: [oracle_br] Re: USO DO COMANDO IN (=ANY) >> >> Gostaria que viesse o resultado: cod = 1 (apenas) Já que o cod 1 possui >> tanto o vlr 1 e o vlr 3 >> >> 2009/7/31 jlchiappa <jlchia...@yahoo.com.br <jlchiappa%40yahoo.com.br>> >> >> > >> > >> > Não, colega, não : ** releia ** a minha msg, eu disse : >> > >> > coluna like p1 AND coluna like p2 AND coluna like p3 >> > >> > é AND pra que obedeça a todas as condições, e não OR, yes ??? >> > >> > []s >> > >> > Chiapa >> > >> > --- Em oracle_br@yahoogrupos.com.br >> > <oracle_br%40yahoogrupos.com.br><oracle_br% >> 40yahoogrupos.com.br>, >> > Pablo Câmara <pscam...@...> escreveu >> > > >> > > Chiappa, >> > > Valeu pela ajuda...mas não conseguí. >> > > A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' >> > > and >> > COLUNA >> > > like '%param3%' >> > > No meu caso não funcionou. >> > > >> > > No meu exemplo: >> > > >> > > CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20)) >> > > >> > > INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/ INSERT INTO TESTE >> > > (COD,VLR) VALUES (1,'2')/ INSERT INTO TESTE (COD,VLR) VALUES >> > > (1,'3')/ INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/ INSERT INTO >> > > TESTE (COD,VLR) VALUES (2,'3')/ INSERT INTO TESTE (COD,VLR) VALUES >> > > (2,'4')/ >> > > >> > > Pesquisar o documento que tenha as palavras *1 e 3.* >> > > >> > > 1) >> > > SELECT COD,VLR FROM ARQ.TESTE >> > > WHERE VLR LIKE '%1%' AND VLR LIKE '%3%' >> > > > No results. >> > > >> > > 2) >> > > SELECT COD,VLR FROM ARQ.TESTE >> > > WHERE VLR LIKE '%1%' OR VLR LIKE '%3%' >> > > > >> > > 1 1 >> > > 1 3 >> > > 2 3 >> > > >> > > (Resultado igual ao IN) >> > > >> > > Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3. >> > > >> > > Valeu, pela ajuda >> > > Vou tentar outra coisa aqui! >> > > >> > > >> > > >> > > 2009/7/31 jlchiappa <jlchia...@...> >> > >> > > >> > > > >> > > > >> > > > Colega, vamos por partes aí : primeiro de tudo, vamos entender : o >> > WHERE é >> > > > uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, >> > > > e o operador ALL indica que a condição deve ser verdadeira para >> > > > TODOS os >> > valores >> > > > - sabendo-se isso, uma condição >> > > > >> > > > WHERE coluna = ALL (x, y, z) >> > > > >> > > > evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de >> > > > uma >> > coluna >> > > > NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc >> > > > obteve >> > "No >> > > > Results" na sua primeira tentativa... O que vc quer é pesquisar >> > > > NÂO por Igualdade, mas por presença, então esqueça o '=' , blz ? >> > > > No banco 8i, >> > já que >> > > > vc não tem a REGEXPe iirc não tem Contexts também, as únicas >> > > > opções pra >> > se >> > > > pesquisar por existência de uma substring dentro de outra são : o >> > > > LIKE, >> > as >> > > > funções string tipo INSTR, escrita de uma função PL/SQL >> > > > customizada sua >> > ou >> > > > alguma combinação complexa com Analytics (estes já existiam no 8i, >> > > > só >> > não >> > > > lembro o release 8i exato em que foram introduzidos). >> > > > Para usar o LIKE ou funções built-in, isso VAI implicar em SQL >> > dinâmico, >> > > > imagino que vc terá que ter uma rotina sua, que recebe os >> > > > parâmetros digitados e os expande em vários LIKE, tipo : >> > > > >> > > > WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA >> > > > like '%param3%' >> > > > >> > > > ou com built-ins se quiser, algo assim.. >> > > > >> > > > A opção de função customizada sua seria algo que vc chamaria no >> > > > WHERE, >> > tipo >> > > > : >> > > > >> > > > WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde >> > busca3) = >> > > > 1 ... >> > > > >> > > > lógico, NENHUMA dessas alternativas vão ser extremamente saudável >> > > > pra performance, mas é isso... A menos danosa imagino que seria >> > > > montar >> > alguma >> > > > combinação com Analytics, mas e algo a se pesquisar... >> > > > >> > > > []s >> > > > >> > > > Chiappa >> > > > --- Em oracle_br@yahoogrupos.com.br<oracle_br%40yahoogrupos.com.br> >> > > > <oracle_br%40yahoogrupos.com.br><oracle_br% >> >> > 40yahoogrupos.com.br>, >> > > > Pablo Câmara <pscamara@> escreveu >> > > > > >> > > > > *paramentroDaTela := BABCOCK DIGIMAPAS TUBO* >> > > > >> > > > > * >> > > > > * >> > > > > *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE >> > > > TXT_DOCUMENTO >> > > > > IN (paramentroDaTela)* >> > > > > * >> > > > > * >> > > > > *No caso 1: vai retornar o código de varios documentos. Sendo >> > > > > uma >> > tabela >> > > > > de 3 milhoes de registros. Fica inviável.* >> > > > > * >> > > > > * >> > > > > *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE >> > > > TXT_DOCUMENTO >> > > > > =ALL (paramentroDaTela)* >> > > > > * >> > > > > * >> > > > > *No caso 2: Se o comando funcionasse, traria apenas o código do >> > > > documento, >> > > > > no qual todas as palavras passadas como paramentro fazem parte.* >> > > > > * >> > > > > * >> > > > > *Alguem tem alguma outra sugestão? PS: ORACLE 8I.* >> > > > > * >> > > > > * >> > > > > *Em outras versões do oracle (a partir do 9i) eu utilizo o >> > regexp_like. >> > > > Ou >> > > > > faço a busca por contexto.* >> > > > > * >> > > > > * >> > > > > *Pablo* >> > > > > * >> > > > > * >> > > > > * >> > > > > * >> > > > > * >> > > > > * >> > > > > >> > > > > >> > > > > [As partes desta mensagem que não continham texto foram >> > > > > removidas] >> > > > > >> > > > >> > > > >> > > > >> > > >> > > >> > > [As partes desta mensagem que não continham texto foram removidas] >> > > >> > >> > >> > >> >> [As partes desta mensagem que não continham texto foram removidas] >> >> ------------------------------------ >> >> ---------------------------------------------------------- >> >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de >> inteira responsabilidade de seus remetentes. >> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ >> ---------------------------------------------------------- >> >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » >> >Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO >> >ESPAÇO! VISITE: http://www.oraclebr.com.br/ >> ---------------------------------------------------------- Links do Yahoo! >> Grupos >> >> >> > > [As partes desta mensagem que não continham texto foram removidas]