2017-02-27 36 views
0

這裏我用AS Clause.if我使用SELECT查詢它工作正常,但如果我使用插入查詢。它給出語法錯誤。 我們可以在SAP HANA中使用WITH .... INSERT嗎?如何在SAP HANA中使用WITH CLAUSE ... INSERT查詢?

代碼:

WITH t1 as 
(
    Select 
    col1, 
col2, 
col3 
    from table1), 

t2 as 
(
select 
a.col4, 
a.col5, 
a.col1, 
b.col3 
from table2 a 
left outer join t1 
on a.col1 = b. col1) 
insert into table3 
select 
c.col4, 
c.col5, 
c.col3 
from t2; 

回答

0

基於我對HANA,CTE的知識(〜與基於查詢)目前沒有在INSERT子句來支持。這意味着您應該儘可能直接使用子查詢。

IMO,沒有CTE就無法創建的唯一場景是遞歸查詢(它們在HANA中根本不受支持)。由於您的查詢是不遞歸的,你可以重新寫,如下簡化它:

INSERT INTO TABLE3 
SELECT T2.COL4, T2.COL5, T1.COL3 
    FROM TABLE1 AS T1 
    LEFT OUTER JOIN TABLE2 AS T2 
    ON T1.COL1 = T2.COL1 
+0

SAP HANA支持CTE,但只能在SELECT語句中使用。 –

+0

我站好了。調整了答案:) –

0

除了謝爾班的正確答案,因爲缺乏CTE功能的一般解決方法是不是創建視圖。 您的情況可能是:

create view t1 as 
(select 
     col1, 
     col2, 
     col3 
from 
     table1); 

create view t2 as 
(select 
     a.col4, 
     a.col5, 
     a.col1, 
     b.col3 
from 
     table2 a 
left outer join t1 
       on a.col1 = b. col1); 

insert into table3 
select 
     c.col4, 
     c.col5, 
     c.col3 
from t2;