web-dev-qa-db-fra.com

CHOISIR POUR UTILISER LA REQUÊTE UNION

Je veux créer une nouvelle table dans SQL Server avec la requête suivante. Je n'arrive pas à comprendre pourquoi cette requête ne fonctionne pas.

Query1: Works

SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2 

Requête2: ne fonctionne pas. Erreur: Msg 170, Level 15, State 1, Line 7 Line 7: Incorrect syntax near ')'.

SELECT * INTO [NEW_TABLE]
FROM
(
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
)

Merci!

32
Sekhar

Vous devez définir un alias de table pour une table dérivée dans SQL Server:

SELECT x.* 
  INTO [NEW_TABLE]
  FROM (SELECT * FROM TABLE1
        UNION
        SELECT * FROM TABLE2) x

"x" est l'alias de table dans cet exemple.

75
OMG Ponies
INSERT INTO #Temp1
SELECT val1, val2 
FROM TABLE1
 UNION
SELECT val1, val2
FROM TABLE2
2
Lorena Pita

Vous pouvez également essayer:

create table new_table as
select * from table1
union
select * from table2
1
Pablo Santa Cruz
select *
into new_table
from table_A
UNION
Select * 
From table_B

Cela ne fonctionne que si Table_A et Table_B ont les mêmes schémas

1
Jim