我尝试使用另一个表中的字段更新一个表:
Update x
From y
Set 1=y.1, 2=y.2, 3=y.3
Where y.4="*Cash*" and y.5="*Use*"
这可能吗?或者我必须使用内部联接或子查询?我的更新语法中一直出现错误:"缺少选项或无效选项。"
答案 0 :(得分:2)
你似乎要求像
这样的东西UPDATE x
SET (col1, col2, col3) = (select y.col1, y.col2, y.col3
from y
where y.col4 = '*Cash*'
and y.col5 = '*Use*')
通常,会有一些与表x
和y
相关的附加条件。如果针对y
的查询返回单行,并且您希望使用该单行数据更新x
的每一行,则无需这样做。但通常情况下,你会有像
UPDATE x
SET (col1, col2, col3) = (select y.col1, y.col2, y.col3
from y
where y.col4 = '*Cash*'
and y.col5 = '*Use*'
and x.someKey = y.someKey)
如果您只想更新x
中y
UPDATE x
SET (col1, col2, col3) = (select y.col1, y.col2, y.col3
from y
where y.col4 = '*Cash*'
and y.col5 = '*Use*'
and x.someKey = y.someKey)
WHERE EXISTS( select 1
from y
where y.col4 = '*Cash*'
and y.col5 = '*Use*'
and x.someKey = y.someKey)
行
{{1}}