Wasn’t aware it was possible to put array_position statement in the actual select or is this a select within a select?
Also, I am selecting from an ordered (randomly) subset of data and I need to return the result set in the same order so do have to output the array as part of the order by?
__
From: Rob Sargent <robjsargent@gmail.com> Sent: 26 November 2018 19:20 To: Mark Williams <markwillimas@gmail.com> Cc: pgsql-sql@lists.postgresql.org Subject: Re: Select Distinct Order By Array_Position
I am getting an error “SELECT DISTINCT, ORDER BY expressions must appear in select list”. I am ordering bydocuments.idand 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 DISTINCTdocuments.id, page_no FROM texts LEFT JOIN documents ondocuments.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)
Thanks,
Mark
__
Try put the array_position clause in the select and add documents.id to the order by?