52 votes

SÉLECTIONNER DANS L'UTILISATION DE LA REQUÊTE UNION

Je souhaite 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.

Requête 1 : Fonctionne

 SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2 

Requête 2 : 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!

108voto

OMG Ponies Points 144785

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 la table dans cet exemple.

3voto

Pablo Santa Cruz Points 73944

Vous pouvez également essayer :

 create table new_table as
select * from table1
union
select * from table2

3voto

Lorena Pita Points 827
INSERT INTO #Temp1
SELECT val1, val2 
FROM TABLE1
 UNION
SELECT val1, val2
FROM TABLE2

2voto

lucazarts25 Points 21

Voici une syntaxe de travail pour SQL Server 2017 :

 USE [<yourdb-name>]
GO

SELECT * INTO NEWTABLE 
FROM <table1-name>
UNION ALL
SELECT * FROM <table2-name>

1voto

Jim Points 1273
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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X