【发布时间】:2018-04-11 19:51:36
【问题描述】:
我正在尝试在 Oracle 中执行一个简单的 SQL update-set-from 语句,如下所示:
update
table1 t1
set
t1.col1=t2.col1
from
(select distinct t1.col1 from table1 t1 where t1.col2='xxx') as t2
where
t1.col1='yyy';
我之前没有使用过from 和update-set,但是这种语法对我来说看起来不错。但是它失败并出现此错误:
Error report -
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
我想要的结果是内部选择返回单个记录,然后将其插入/更新到 table1 的col1。
另外,考虑到我已经在更新语句中使用了t1,我是否应该在内部选择语句中为table1 使用不同于t1 的别名?
【问题讨论】:
-
你搞混了——Oracle数据库中没有
UPDATE ... FROM ...这样的选项,请研究Oracle's syntax of UPDATE
标签: sql oracle sql-update