【Oracle】 ORA-01791: 不是 SELECTed 表达式

【问题描述】

        今天执行SQL的时候出现了如下错误:

ORA-01791: 不是 SELECTed 表达式

 

       执行的SQL语句如下: 

SELECT DISTINCT A.GFMC, A.GFSBH, A.DZDH, A.XFMC, A.XFSBH
  FROM PD_NCP_GHRJCB A
 ORDER BY A.GFMC, A.JE DESC;

【问题原因】

       order by 语句中出现了distinct没有的字段,这这条语句中,就是A.JE字段。

【解决办法】

       去掉order by中多余的字段,或者在distinct中加入order by中的字段。

SELECT DISTINCT A.GFMC, A.GFSBH, A.DZDH, A.XFMC, A.XFSBH
  FROM PD_NCP_GHRJCB A
 ORDER BY A.GFMC DESC;
或者
SELECT DISTINCT A.GFMC, A.GFSBH, A.DZDH, A.XFMC, A.XFSBH, A.JE
  FROM PD_NCP_GHRJCB A
 ORDER BY A.GFMC, A.JE DESC;
发布了258 篇原创文章 · 获赞 1227 · 访问量 52万+

猜你喜欢

转载自blog.csdn.net/gdkyxy2013/article/details/104806817