加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 13:20:45 所属栏目:百科 来源:网络整理
导读:表结构如下: ? 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 ) 使用下

表结构如下:

?

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,GOODPRICE,GOODID from hh_book_good order by GOODID;

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

?

?

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


?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读