2017-03-29 3 views
0

Ich habe mehrere Aliase in meiner Abfrage definiert und ich möchte das Ergebnis jedes Alias ​​in Tabelle tab_1 schreiben. Aber wenn ich die folgende Abfrage ausführen bekomme ich FehlerEinfügen in eine einzelne Tabelle aus mehreren Tabellen

fehlt EOF auf ‚Einfügen‘ in der Nähe von ‚tab_1‘

Habe ich es richtig geschrieben? Kann jemand die Syntax überprüfen oder mir sagen, wie ich es schreiben soll? Bitte vergewissere dich, dass ich Kommas an der richtigen Stelle gesetzt habe. Schätze die Hilfe.

func_1 as 
(.....), 

func_2 as 
(.....), 

func_3 as 
(....), 


INSERT INTO TABLE tab_1 select * from func_1, 

INSERT INTO TABLE tab_1 select * from func_2, 

INSERT INTO TABLE tab_1 select * from func_3; 
+0

Semikolons, nicht Komma: 'INTO TABLE INSERT tab_1 select * from func_1;' – Andrew

+0

Die Antwort, die Sie unter Nikki empfangen scheint nützlich sein. Würden Sie dem Autor bitte antworten und/oder ihn akzeptieren, indem Sie auf das nebenstehende grüne Häkchen klicken? – halfer

Antwort

0

Benutzen Sie diese Schablone: ​​

with 
func_1 as (.....), 
func_2 as (.....), 
func_3 as (....) 
INSERT INTO TABLE tab_1 
select * from func_1 
    union all 
select * from func_2 
    union all 
select * from func_3; 

Subqueries in union all wird parallel ausgeführt werden.

Plan auf diesem Satz Karo erklären, so scheint es ok zu arbeiten:

with func_1 as 
(select * from default.dual), 
func_2 as 
(select * from default.dual) 
insert into table default.dual 
select * from func_1 
union all 
select * from func_2 
Verwandte Themen