【发布时间】:2016-07-21 06:15:39
【问题描述】:
我不明白为什么这会引发语法错误(缺少右括号):
UPDATE table
SET doc =
(SELECT 'table-2844-doc' || SUBSTR(doc_file, INSTR(doc_file, '.', -1))
FROM docvers
WHERE (docvers.table_name = 'other_table'
AND docvers.field_name = 'doc')
AND ROWNUM = 1
ORDER BY VERSION DESC)
WHERE table_id = 2844
这在我看来是正确的,确实在 SQL Server 中正确执行,并且类似于在 Oracle SQL: Update a table with data from another table 中找到的请求。
有什么建议吗?
【问题讨论】:
-
它可能不会做你想做的事(因为它选择了一个任意行然后对其进行排序——它什么都不做)。但我没有看到明显的语法错误。
-
语法错误。标量子查询块的语法中没有 ORDER BY。