使用DISTINCT关键字会导致此错误:不是SELECTED表达式
我有一个查询,看起来像这样:
SELECT DISTINCT share.roomsFROM 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