使用DISTINCT关键字会导致此错误:不是SELECTED表达式

我有一个查询,看起来像这样:

SELECT DISTINCT share.rooms

FROM Shares share

left join share.rooms.buildingAdditions.buildings.buildingInfoses as bi

... //where clause omitted

ORDER BY share.rooms.floors.floorOrder, share.rooms.roomNumber,

share.rooms.firstEffectiveAt, share.shareNumber, share.sharePercent

导致以下异常:

Caused by: org.hibernate.exception.SQLGrammarException: ORA-01791: not a SELECTed expression

如果删除DISTINCT关键字,查询将运行没有问题。如果删除order by子句,则查询运行不会出现问题。不幸的是,我似乎无法获得没有重复的有序结果集。

回答:

您正在尝试使用未计算的列对结果进行排序。如果您不在DISTINCT那里,那将不是问题,但是由于查询基本上只按share.rooms列分组,因此如何将结果集与可以具有相同值的其他列进行排序

share.rooms

以上是 使用DISTINCT关键字会导致此错误:不是SELECTED表达式 的全部内容, 来源链接: utcz.com/qa/420924.html

回到顶部