使用DISTINCT关键字导致此错误:不是一个SELECTedexpression式
我有一个这样的查询:
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
这会导致以下exception:
Caused by: org.hibernate.exception.SQLGrammarException: ORA-01791: not a SELECTed expression
如果我删除DISTINCT关键字,查询运行没有问题。 如果我删除order by子句,查询运行没有问题。 不幸的是,我似乎无法得到没有重复的有序结果集。
您正尝试使用未计算的列来sorting结果。 如果您没有DISTINCT
,那么这不会成为问题,但是由于您的查询基本上只是由share.rooms
列进行分组,所以如何将结果集与其他可以具有多个值的列一起sortingshare.rooms
一个?