RE: [oracle_br] Dúvida Pertinente

2010-02-09 Por tôpico CLARO, EDUARDO
Flavio,



A dificuldade que você está tendo ocorre pelo fato de o operador LIKE ser 
ESCALAR, isto é, ele permite apenas a comparação de um valor em cada lado da 
comparação. O que estou dizendo é que o erro não tem a ver com o fato de o tipo 
de dados ser numérico ou caractere, mas sim com o operador LIKE.



Se você deseja fazer uma operação LIKE com algo parecido com a query 
demonstrada:



select * from table1 t1 where t1.nome like (select t2.nome from 
table2 t2)



Isto significa que você quer, para cada valor retornado da query principal, 
comparar com todos os valores retornados pela subquery. Não recisa dizer que 
isso seria um candidato a problema de performance, certo?



Existe uma maneira de fazer, usando-se um JOIN ao invés da subquery:



select * from table1 t1, tablw t2 where t1.nome like select t2.nome



Assim vai funcionar. Mas, repito, veja bem se é isso mesmo que você deseja, 
procura restringir bem os resultados, senão poderá ter problemas.



[]s



Eduardo Claro



From: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] On 
Behalf Of Flavio
Sent: terça-feira, 9 de fevereiro de 2010 11:51
To: Grupo Oracle II; Grupo Oracle
Subject: [oracle_br] Dúvida Pertinente





Olá pessoal,

alguem pode me ajudar ? Tenho uma dúvida quanto ao uso da palavra
'like'. Quero realizar uma condição where utilizando like da mesma
forma, por exemplo, quando utilizando in () com valores númericos.
Exemplo:

select * from table1 t1 where t1.serno in (1,2,3)  -- onde serno é uma coluna 
numérica

Minha dúvida é como realizar com like também, por exemplo:

select * from table1 t1 where t1.nome in ('Flavio','Jorge','Thais')  -- onde 
nome é coluna texto.

Outra dúvida é quanto ao retorno de string de subselect. Por exemplo, para 
valores numericos, eu posso realizar este select:

select * from table1 t1 where t1.serno in (select t2.serno from table2 t2)  -- 
onde serno em table1 e table2 são numéricos.

Agora para textos nao posso fazer o mesmo, por exemplo:

select * from table1 t1 where t1.nome like (select t2.nome from table2 t2)  -- 
onde nome em table1 e table2 são textos.

Entenderam ? Quero realizar esses tipos de operações para colunas textos, assim 
como faço para colunas do tipo numéricas.

Obrigado pela atenção de todos,

Abraços,

Flávio.

__
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Dúvida Pertinente

2010-02-09 Por tôpico Flavio
Olá pessoal,



alguem pode me ajudar ? Tenho uma dúvida quanto ao uso da palavra
'like'. Quero realizar uma condição where utilizando like da mesma
forma, por exemplo, quando utilizando in () com valores númericos.
Exemplo:



select * from table1 t1 where t1.serno in (1,2,3)  -- onde serno é uma coluna 
numérica

Minha dúvida é como realizar com like também, por exemplo:

select * from table1 t1 where t1.nome in ('Flavio','Jorge','Thais')  -- onde 
nome é coluna texto.



Outra dúvida é quanto ao retorno de string de subselect. Por exemplo, para 
valores numericos, eu posso realizar este select:

select * from table1 t1 where t1.serno in (select t2.serno from table2 t2)  -- 
onde serno em table1 e table2 são numéricos.

Agora para textos nao posso fazer o mesmo, por exemplo:

select * from table1 t1 where t1.nome like (select t2.nome from table2 t2)  -- 
onde nome em table1 e table2 são textos.



Entenderam ? Quero realizar esses tipos de operações para colunas textos, assim 
como faço para colunas do tipo numéricas.



Obrigado pela atenção de todos,

Abraços,

Flávio.




  

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]