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]