【问题描述】
今天执行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;