2017-03-29 23 views
0

私はクエリに複数のエイリアスを定義しており、各エイリアスの結果をテーブルtab_1に書きたいとします。私は次のクエリを実行すると、私は「INSERT」近く「tab_1」複数のテーブルから1つのテーブルに挿入

私はそれを正しく書かれている時にエラー

行方不明EOFを取得しますか?誰かが構文を確認するか、それを書く方法を教えてもらえますか?正しい場所にコンマを置いていることを確認してください。助けを感謝します。

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

セミコロンではなく、カンマ: 'FUNC_1から選択* tab_1テーブルに挿入;' – Andrew

+0

あなたはニッキの下に受け取った答えがいるようです便利である。隣の緑色のチェックマークをクリックして、著者に返答しますか、それとも受け入れますか? – halfer

答えて

0

このテンプレートを使用:union all

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; 

サブクエリが並行して実行されます。この文でEXPLAIN PLANをチェック

、正常に動作するようです:

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 
関連する問題