子查询中 ORDER BY 的 SQL 错误(使用了 TOP)

标签 sql sybase-asa

我在以下查询中收到 '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 ,但在这种情况下我已经在使用它了。当 TOPORDER BY 不是子查询的一部分时,我没有任何问题。有什么想法吗?

最佳答案

这个错误与TOP无关。 ASE 根本不允许在子查询中使用 ORDER BY。这就是错误的原因。

关于子查询中 ORDER BY 的 SQL 错误(使用了 TOP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34953929/

相关文章:

c# - 如何使用 ODBC 连接 .NET Core 中的 Sybase 17 ASA?

python - 数据库默认值的Django实现

sql - PostgreSQL 和用于分析频繁大型插入的性能成本的工具

mysql - 关系数据库中的链修改

sql - 使用 sql 开发人员界面编辑序列值

java - 为什么我的 "while(rs.next()) "无法执行我使用过的所有 if、ifelse、else?

c# - 连接到 SQL Anywhere - 未找到 dblgen12.dll

sql - Row_Number Sybase SQL Anywhere 在多个条件下更改

sql - 如何将数据从 iSQL 输出到带有_标题的 csv 文件?

Sybase Anyware。 SQL查询以确定数据库版本