Usuário com melhor resposta
Union

Pergunta
-
Respostas
-
Olá SirSmart,
Segue um exemplo:
Code SnippetCREATE
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 tbl1UNION ALL
SELECT
Codigo, Nome FROM tbl2-- SELECT com tipos compatíveis (essa tb funciona, mas sem sentido)
SELECT
Nome FROM tbl1UNION ALL
SELECT
CPF FROM tbl2-- Essa não funciona, pois, os tipos não são compatíveis
SELECT
Nome FROM tbl1UNION ALL
SELECT
Codigo FROM tbl2Não sei se lhe ajuda. Por favor detalhe melhor sua necessidade para que possamos ajudá-lo.
[ ]s,
Gustavo
-
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
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
-
-
Olá SirSmart,
Segue um exemplo:
Code SnippetCREATE
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 tbl1UNION ALL
SELECT
Codigo, Nome FROM tbl2-- SELECT com tipos compatíveis (essa tb funciona, mas sem sentido)
SELECT
Nome FROM tbl1UNION ALL
SELECT
CPF FROM tbl2-- Essa não funciona, pois, os tipos não são compatíveis
SELECT
Nome FROM tbl1UNION ALL
SELECT
Codigo FROM tbl2Não sei se lhe ajuda. Por favor detalhe melhor sua necessidade para que possamos ajudá-lo.
[ ]s,
Gustavo
-
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