oracle10g – DISTINCT导致ORA-01791:不是SELECT的表达式

前端之家收集整理的这篇文章主要介绍了oracle10g – DISTINCT导致ORA-01791:不是SELECT的表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
select DISTINCT a.FNAME||' '||a.LNAME
   from AUTHOR a,books B,BOOKAUTHOR ba,customers C,orders
   where C.firstname='BECCA'
      and C.lastname='NELSON'
      and a.AUTHORID=ba.AUTHORID
      and b.ISBN=bA.ISBN
   order by a.LNAME

给出了ORA-01791:不是一个SELECT表达式
但没有DISTINCT的工作。

如何使其工作?

只需在SELECT子句中自行添加LNAME作为列:
SELECT full_name
FROM (
 select DISTINCT a.FNAME||' '||a.LNAME AS full_name,a.LNAME
 from AUTHOR a,orders
 where C.firstname='BECCA'
   and C.lastname='NELSON'
   and a.AUTHORID=ba.AUTHORID
   and b.ISBN=bA.ISBN
 )
order by a.LNAME

如果你只想输出第一列,你可以把整个东西放在一个子查询中。

猜你在找的Oracle相关文章