Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

d.a.m

[Resolvido] Comparação entre lista de valores no where

Recommended Posts

Como faço para comparar se uma lista de valores está dentro da outra?

 

Exemplo:

 

SELECT * FROM tabela WHERE (3, 5, 9) IN (1, 2, 3, 4, 5, 6 ,7 ,8, 9)

 

OBS: O 'IN' funciona somente se fosse apenas um valor na esquerda e uma lista de valores na direita.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante...

 

 

Pelo que sei a clausula IN não aceita esse tipo de construção.

 

Uma forma de fazer isso seria:

SELECT * FROM tabela WHERE 3 IN (1,2,3,4,5,6,7,8,9) AND 5 IN (1,2,3,4,5,6,7,8,9) AND 9 IN (1,2,3,4,5,6,7,8,9);

 

Vou pesquisar para ver se acho outra forma...

 

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei uma forma de fazer convertendo a lista de valores para um array e utilizando o operador '<@' (está contido em):

 

SELECT * FROM tabela WHERE ARRAY[2,3,4] <@ ARRAY[1,2,3,4,5]

 

no meu caso a lista era uma subselect e ficou assim:

 

SELECT * FROM tabela WHERE

ARRAY(SELECT id FROM tabela1) <@ ARRAY(SELECT id FROM tabela2)

 

Vlw galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.