none
Dois select num só RRS feed

  • Pergunta

  • Boas como junto estes dois select´s?

    Select nome from tabelaum 

    select idade from tabela um where cidade = 'Sao Paulo'

    isto não é para apresentar numa tabela. Este código vai ser usado para preencher label´s em vb.net.

    Apenas preciso de disser isto numa só ligação há base de dados. Senão terei que criar duas ligações há base de dados.

    entenderam?

    Digam coisas é urgente. Muito Obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com

    quarta-feira, 11 de abril de 2012 22:49

Todas as Respostas

  • Não sei se entendi bem..

    O objectivo é trazer numa query o resultado desses dois selects?

    Se for, usa o UNION ou UNION ALL.

    Select nome from tabelaum

    UNION

    select idade from tabela um where cidade = 'Sao Paulo'

    A diferença entre o Union e o Union ALL é que o primeiro faz tipo um DISTINCT no final, ou seja, depois de juntar todos os registos ele não devolve registos que são iguiais, ou seja, elimina as linhas duplicadas. O Union ALL traz todos os registos, quer sejam iguais aos existentes ou não.


    • Sugerido como Resposta DavidSoares quinta-feira, 12 de abril de 2012 12:25
    quinta-feira, 12 de abril de 2012 12:06
  • Flahsed,

    Alem da utilização do UNION e UNION ALL (Como dito pelo David [Lembrando que o numero de colunas e o datatype de todos os selects envolvidos deve ser o mesmo]), se sua junção ter de ser em colunas, voce deve utilizar o join para tal ação, ainda que (Caso seu cenario permita), sem juncao de campos, criando um plano cartesiano (Todos os dados de uma tabela com todos os dados da outra tabela).


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    quinta-feira, 12 de abril de 2012 14:49
    Moderador
  • Flashed,

    No caso de gerar um produto cartesiano, onde a quantidade de linhas de uma tabela é multiplicada pela quantidade de linhas da outra, esta fazendo, a geração de uma massa de dados fictícia, para isso temos que utilizar o operador Cross Join.


    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, 16 de abril de 2012 16:31
    Moderador