none
Union RRS feed

Respostas

  • Olá SirSmart,

     

    Segue um exemplo:

     

    Code Snippet

    CREATE TABLE tbl1 (CODIGO INT, NOME VARCHAR(20), CPF CHAR(11))

    CREATE TABLE tbl2 (CODIGO INT, NOME VARCHAR(20), CPF CHAR(11))

     

    INSERT INTO tbl1 VALUES (1, 'ASDAS', '11111111100')

    INSERT INTO tbl2 VALUES (1, 'basda', '22222222200')

     

    -- SELECT com o mesmo tipo (essa funciona)

    SELECT Codigo, Nome FROM tbl1

    UNION ALL

    SELECT Codigo, Nome FROM tbl2

     

    -- SELECT com tipos compatíveis (essa tb funciona, mas sem sentido)

    SELECT Nome FROM tbl1

    UNION ALL

    SELECT CPF FROM tbl2

     

    -- Essa não funciona, pois, os tipos não são compatíveis

    SELECT Nome FROM tbl1

    UNION ALL

    SELECT Codigo FROM tbl2

     

    Não sei se lhe ajuda. Por favor detalhe melhor sua necessidade para que possamos ajudá-lo.

     

    [ ]s,

     

    Gustavo

    quarta-feira, 3 de dezembro de 2008 11:35
  • Olá,

     

    Mesmo "tipo", quer dizer mesmo "tipo de dados/datatype", ou seja, CHAR com CHAR, ou INT com INT. Se a primeira coluna da primeira tabela for do tipo CHAR, e a primeira coluna da segunda tabela for do tipo INT, o UNION apresentará problemas.

     

    Obs: nem sempre ocorrerão problemas, depende dos tipos de dados utilizados e da ordem que eles são utilizados no UNION, mas como regra geral, é bom trabalhar com os mesmos tipo.

     

    Um abraço,

    Raul Santos Neto

     

    quarta-feira, 3 de dezembro de 2008 11:39

Todas as Respostas

  • Olá SirSmart,

     

    O UNION normalmente é usado com tabelas diferentes. Basta apenas que as colunas sejam de tipos compatíveis e que haja o mesmo número de colunas. Ex:

     

    SELECT CPF, Nome FROM PessoasFisicas

    UNION ALL

    SELECT CNPJ, RazaoSocial FROM PessoasJuridicas

     

    Seria isso ?

     

    [ ]s,

     

    Gustavo

     

    terça-feira, 2 de dezembro de 2008 19:50
  •  

    Quando vc diz do mesmo tipo, o que vc quer dizer com isso?

     

    Obrigado

    quarta-feira, 3 de dezembro de 2008 11:24
  • Olá SirSmart,

     

    Segue um exemplo:

     

    Code Snippet

    CREATE TABLE tbl1 (CODIGO INT, NOME VARCHAR(20), CPF CHAR(11))

    CREATE TABLE tbl2 (CODIGO INT, NOME VARCHAR(20), CPF CHAR(11))

     

    INSERT INTO tbl1 VALUES (1, 'ASDAS', '11111111100')

    INSERT INTO tbl2 VALUES (1, 'basda', '22222222200')

     

    -- SELECT com o mesmo tipo (essa funciona)

    SELECT Codigo, Nome FROM tbl1

    UNION ALL

    SELECT Codigo, Nome FROM tbl2

     

    -- SELECT com tipos compatíveis (essa tb funciona, mas sem sentido)

    SELECT Nome FROM tbl1

    UNION ALL

    SELECT CPF FROM tbl2

     

    -- Essa não funciona, pois, os tipos não são compatíveis

    SELECT Nome FROM tbl1

    UNION ALL

    SELECT Codigo FROM tbl2

     

    Não sei se lhe ajuda. Por favor detalhe melhor sua necessidade para que possamos ajudá-lo.

     

    [ ]s,

     

    Gustavo

    quarta-feira, 3 de dezembro de 2008 11:35
  • Olá,

     

    Mesmo "tipo", quer dizer mesmo "tipo de dados/datatype", ou seja, CHAR com CHAR, ou INT com INT. Se a primeira coluna da primeira tabela for do tipo CHAR, e a primeira coluna da segunda tabela for do tipo INT, o UNION apresentará problemas.

     

    Obs: nem sempre ocorrerão problemas, depende dos tipos de dados utilizados e da ordem que eles são utilizados no UNION, mas como regra geral, é bom trabalhar com os mesmos tipo.

     

    Um abraço,

    Raul Santos Neto

     

    quarta-feira, 3 de dezembro de 2008 11:39