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

  • 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

    sábado, 25 de agosto de 2012 15:41

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.br

    Se 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.

    segunda-feira, 27 de agosto de 2012 01:52
  • 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]

    segunda-feira, 27 de agosto de 2012 18:33
  • 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/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    segunda-feira, 27 de agosto de 2012 23:56
  • Olá Gustavo Maia Aguiar 

    A versão é SQL Server 2008 R2


    terça-feira, 28 de agosto de 2012 13:15
  • 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.br

    Se 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.


    terça-feira, 28 de agosto de 2012 13:39
  • 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.br

    Se 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.

    terça-feira, 28 de agosto de 2012 13:44
  • 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]

    sexta-feira, 31 de agosto de 2012 14:29