2017-02-27 11 views
0

ここで私はAS Clause.ifと一緒に使用します。私はSELECTクエリを使用していますが、うまくいきますが、私は挿入クエリを使用しています。構文エラーが発生します。 SAP HANAでWITH .... INSERTを使用できますか?WITH CLAUSE ... INSERTクエリをSAP HANAで使用する方法?

コード:HANA、CTEが(〜WITHベースのクエリ)に私の知識に基づいて

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

は、現在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; 
関連する問題