当前位置: 首页 > 面试题库 >

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

贺恩
2023-03-14
问题内容

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

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



 类似资料:
  • 问题内容: 在Python脚本中,我从调用了一个函数,但出现此错误: 这里到底出了什么问题? 问题答案: 不是有效的关键字参数名称。关键字参数必须是有效的标识符。您应该查看正在使用的库的文档,该参数的 实际 调用方式是–也许?

  • 我试图用Django创建数据库并填充它的URL,但我得到了这个错误: 我不知道我在这里遗漏了什么,为什么它不起作用。 这是我的看法: 我的模型是: 完整错误日志: 线程django主线程中的异常:回溯(最后一次调用):文件“c:\users\%username%\appdata\local\programs\python\python37-32\Lib\threading.py”,第917行,“b

  • 主要内容:语法,实例SQLite 的 DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。 有可能出现一种情况,在一个表中有多个重复的记录。当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。 语法 用于消除重复记录的 DISTINCT 关键字的基本语法如下: 实例 假设 COMPANY 表有以下记录: 首先,让我们来

  • 我试图实现PhpPression转换一些文件,所以我有以下代码: 由于某种原因,这段代码正是导致500个内部服务器错误的原因。我已将错误报告设置为“全部”,但未显示任何错误。路径是正确的,我的根目录中有PhpOffice文件夹(public_html)和相应的子文件夹。 自动加载程序代码是这样加载的:

  • 所以浮点运算是不精确的,但这并不能完全解释这里发生的事情:

  • 主要内容:语法在 T-SQL 中,DISTINCT 关键字与 SELECT 语句一起使用以消除重复记录并仅给出唯一记录值。 下面是表中有很多重复记录的情况。当我们获取记录时,只用唯一的记录值代替重复的记录值更有意义。 语法 DISTINCT 关键字的语法如下: 例子: EMPLOYEES 表中有以下记录: 下面来看看 SELECT 查询如何返回重复的工资记录。 执行上面查询语句,得到以下结果 - 注意:此命令生