Inquiridor
Como fazer uma consulta de um grupo valores em vários campos de uma tabela no SQL 2008

Pergunta
-
Tenho uma tabela com os campos (id, num1, num2, num3)
E preciso consultar nestes campos, um grupo de números (3,5,7,9,10,12,15)
Preciso saber se tem algum registo que contenham estes números em qualquer combinação
Ou seja, ele tem q trazer 3,5,7 e 3,5,9, e 3,5,10 e 5,7,15 e as outras possibilidades por exemplo
Obrigado
Todas as Respostas
-
Desconheço uma forma simples de fazer isso. Acredito que não tenha como e que lhe dará um certo trabalho chegar a este objetivo. Eu pensaria em criar alguma procedure ou função para chegar ao resultado pretendido. Ou seja, terá que pensar em desenvolver uma inteligência para isso.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
Luciano,
Vou na mesma linha de raciocínio do Roberson, também não acredito que possa existir algo tão específico, mas uma função do tipo InLine poderia resolver o seu problema.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Boa Noite,
Informe o SQL Server utilizado para sabermos que recursos temos à disposição.
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
-
Olá Gustavo Maia Aguiar
A versão é SQL Server 2008 R2
- Editado Luciano_Medeiros terça-feira, 28 de agosto de 2012 13:16
-
Esse números que são seu parâmetro podem estar numa tabela? Dê uma olhada no exemplo abaixo:
Create Table #TabelaPrincipal (id int Identity, num1 int, num2 int, num3 int) Insert Into #TabelaPrincipal Values (3,5,7), (1,5,6), (5,9,12), (7,10,15), (2,9,12), (3,7,15) Create Table #TabelaComNumeros (Numero int) Insert Into #TabelaComNumeros Values (3),(5),(7),(9),(10),(12),(15) Select A.num1, A.num2, A.num3 From #TabelaPrincipal A Join #TabelaComNumeros T1 on (A.num1 = T1.Numero) Join #TabelaComNumeros T2 on (A.num2 = T2.Numero) Join #TabelaComNumeros T3 on (A.num3 = T3.Numero)
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Editado Roberson Ferreira _ terça-feira, 28 de agosto de 2012 13:39
- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 31 de agosto de 2012 14:30
-
Se por acaso não puder passar os números em uma tabela, pode montar uma function ou uma procedure que montará uma tabela pra você. E aí o restante do script que te passei será o mesmo.
A questão é só quem monta a tabela com os números: você ou o SQL.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
Luciano,
Cara a dica do Roberson matou a pau a sua dúvida, se for isso, já esta resolvido.
Eu particularmente transformaria isso em Function.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]