Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DISTINCT results in ORA-01791: not a SELECTed expression

Tags:

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 

gives ORA-01791: not a SELECTed expression but works without DISTINCT.

How to make it work?

like image 377
user490735 Avatar asked Mar 31 '11 22:03

user490735


1 Answers

Just add LNAME as a column on its own in the select clause:

SELECT full_name FROM (  select DISTINCT a.FNAME||' '||a.LNAME AS full_name, 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 

If you only want the first column in the output, you can put the whole thing in a subquery.

like image 144
Jeffrey Kemp Avatar answered Sep 27 '22 18:09

Jeffrey Kemp