Re: Select Distinct Order By Array_Position

Rob Sargent <[email protected]> Mon, 26 Nov 2018 12:20:14 -0700
Newsgroups gmane.comp.db.postgresql.sql
Message-ID <[email protected]>

> On Nov 26, 2018, at 12:12 PM, Mark Williams <[email protected]> wrote:
> 
> Hi,
>  
> I am getting an error “SELECT DISTINCT, ORDER BY expressions must appear in select list”. I am ordering by documents.id <http://documents.id/> and it appears in my select list. So I am guessing the problem lies with the array. Is there any way of achieving this? Query is below.
>  
> SELECT DISTINCT documents.id <http://documents.id/>, page_no FROM texts LEFT JOIN documents on documents.id <http://documents.id/>=texts.doc_id WHERE doc_id IN (26194, 2345, 189) AND  (text LIKE '%RIVER%') ORDER BY array_position(ARRAY[26194, 2345, 189]::INTEGER[], documents.id <http://documents.id/>)
>  
> Thanks,
>  
> Mark
> __

Try put the array_position clause in the select and add documents.id <http://documents.id/> to the order by?