【发布时间】:2016-04-29 11:30:46
【问题描述】:
我从以下查询中得到Syntax error near 'ORDER':
SELECT i.ItemID, i.Description, v.VendorItemID
FROM Items i
JOIN ItemVendors v ON
v.RecordID = (
SELECT TOP 1 RecordID
FROM ItemVendors iv
WHERE
iv.VendorID = i.VendorID AND
iv.ParentRecordID = i.RecordID
ORDER BY RecordID DESC
);
如果我删除ORDER BY 子句,查询运行良好,但不幸的是,必须从降序列表中提取而不是升序。我找到的所有与此相关的答案都表明必须使用TOP,但在这种情况下,我已经在使用它了。当TOP 和ORDER BY 不是子查询的一部分时,我没有任何问题。有什么想法吗?
【问题讨论】:
-
如果你使用
max()而不是top会发生什么? -
使用
max()会导致同样的错误,但这是意料之中的,因为在子查询中使用order by需要使用top。 -
你可能是想让我不要在你的建议中使用
order by,但我误解了。你是对的,谢谢!
标签: sql sybase-asa