Oracle查询错误分析 ORA-01791 不是SELECTed表达式

Posted skiwnchqhh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle查询错误分析 ORA-01791 不是SELECTed表达式相关的知识,希望对你有一定的参考价值。

表结构如下:

 

create table HH_BOOK_GOOD
(
  ID        VARCHAR2(32) not null,
  BOOKID    VARCHAR2(32) not null,
  GOODID    VARCHAR2(32) not null,
  GOODPRICE FLOAT not null,
  GOODNAME  VARCHAR2(256) not null,
  GOODNOTE  VARCHAR2(1024) not null
)

使用下面语句进行查询

 

 

select distinct ID,BOOKID,GOODPRICE from HH_BOOK_GOOD order by GOODID;
报ORA-01791:不是SELECTed表达式

原因是order by后面的GOODID字段不在select查询结果字段之中,因为使用了distinct关键字。

 

解决方法
1、将此字段加入到select之后

 

select distinct ID,BOOKID,GOODPRICE,GOODID from hh_book_good order by GOODID;

2、如果觉得GOODID字段是多余的,实在是不想将它查询出来,可修改为如下:

 

 

select ID,BOOKID,GOODPRICE
from(select distinct ID,BOOKID,GOODPRICE,GOODID from HH_BOOK_GOOD)
order by GOODID;


 

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow









以上是关于Oracle查询错误分析 ORA-01791 不是SELECTed表达式的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01791: 不是 SELECTed 表达式

在查询 Oracle 的错误时,是不是有任何避免 Stream 的解决方法已经关闭?

oracle有没有类似sqlserver的查询分析器的工具呢本身

oracle怎样查询数据库函数是不是被执行

带有子查询的ORACLE单组功能错误[关闭]

Oracle 是不是关联嵌套在任何级别的子查询?