zoukankan      html  css  js  c++  java
  • 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;


  • 相关阅读:
    jenkins更换国内源
    部署jdk和maven
    Prometheus监控Nginx
    Prometheus监控MySQL
    MySql里动态视图的实现
    MySql里split函数的实现
    HTML编码规范
    消弱反驳18招
    Pr2020
    记忆准则
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131352.html
Copyright © 2011-2022 走看看