Ordering by IN - Mailing list pgsql-general

From Hadley Willan
Subject Ordering by IN
Date
Msg-id 1093414736.2365.203.camel@atlas.sol.deeper.co.nz
Whole thread Raw
Responses Re: Ordering by IN  (Eric B.Ridge <ebr@tcdi.com>)
Re: Ordering by IN  (Mike Benoit <ipso@snappymail.ca>)
List pgsql-general
Hi,
    I was wondering if it's possible to order the result set by some of the set contained in an IN clause.

For example.
SELECT * FROM v_fol_unit_pub_utmpt WHERE folder_folder_object = 100120 AND unit IN ( 90072, 90005, 90074, 90075 ) AND unit_pub_type IN ( 2 ) AND utmpt IN ( 1 );

Results in.

folder_folder_object | unit  | unit_type | unit_quantity | unit_pub_type | utmpt
----------------------+-------+-----------+---------------+---------------+-------
               100120 | 90005 |       101 |             1 |             2 |     1
               100120 | 90072 |       101 |             1 |             2 |     1
               100120 | 90074 |       101 |             1 |             2 |     1

When ideally I'd like to maintain the order as per ordered list of unit ids passed in as the parameters.
Like so;

folder_folder_object | unit  | unit_type | unit_quantity | unit_pub_type | utmpt
----------------------+-------+-----------+---------------+---------------+-------
               100120 | 90072 |       101 |             1 |             2 |     1
               100120 | 90005 |       101 |             1 |             2 |     1
               100120 | 90074 |       101 |             1 |             2 |     1



Is this even possible?

Thanks

pgsql-general by date:

Previous
From: Carlos Moreno
Date:
Subject: Re: Deadlocks caused by referential integrity checks
Next
From: Ulrich Wisser
Date:
Subject: Missing FROM clause