2015-12-09 47 views
0
With A as (Select Trip, a from Table1), 
     B as (Select pattern, a from Table2), 
     C as (Select Trip, Pattern from Table1 inner join Table2 on Table1.a=Table2.a), 

Update A 
Set A.Pattern = C.Pattern 
From C 
WHERE C.TRIP = A.TRPIP 

它给错误的选择关键字,任何人都知道如何解决与oracle10g中的CTE更新?Missing选择关键字

+0

这不是在Oracle中有效的语法,你能解释一下什么是你想用样本数据在这里实现? –

+0

提示:使用[合并](https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm) –

回答

1

请尽量使用合并。它将类似于您的

merge into Table1 A 
using (select a, pattern from Table2) B 
on (A.a = B.a) 
when matched then 
    update set A.trip = B.pattern; 

合并会发现一个出现在表1存在于表2 模式更换旅行

例子是在这里: SQL Fiddle demo