这里我使用了AS Clause.if我使用SELECT查询它工作正常,但如果我使用插入查询。它给出了语法错误。 我们可以在SAP HANA中使用WITH .... 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 :(得分:1)
除了Serban的正确答案之外,缺乏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;
答案 1 :(得分:0)
根据我对HANA的了解,INSERT子句目前不支持CTE(基于WITH的查询)。这意味着您应该尽可能直接使用子查询。
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