如果指定了 SELECT DISTINCT,则 ORDER BY 项目必须出现在 select 列表中?

ORDER BY items must appear in the select list if SELECT DISTINCT is specified?

这是我的错误

ORDER BY items must appear in the select list if SELECT DISTINCT is specified.

这是我的子查询

(select TOP(1) Error from tablename v, tablename j where v.columname= j.columnname1 ORDER BY v.columnname,j.columnname1)

我很困惑,因为我使用的是 order by 子句,有什么想法吗?

提前致谢

从不FROM 子句中使用逗号。 始终使用正确、明确、标准、可读的JOIN语法。

您可以使用 GROUP BY 解决问题。这允许您在 ORDER BY:

中的列上使用聚合函数
select TOP (1) Error
from tablename v join
     tablename j 
     on v.columname = j.columnname1
group by Error
order by max(v.columnname), max(j.columnname1);

根据我的经验,这通常用于 date/time 列以按最近出现的时间订购某物。