Ordering by IN
От
Hadley Willan
Тема
Ordering by IN
Дата
Msg-id
1093414736.2365.203.camel@atlas.sol.deeper.co.nz
Список
Дерево обсуждения
Ordering by IN Hadley Willan <hadley.willan@deeperdesign.co.nz>
Re: Ordering by IN Mike Benoit <ipso@snappymail.ca>
Re: Ordering by IN Greg Stark <gsstark@mit.edu>
Re: Ordering by IN Eric B.Ridge <ebr@tcdi.com>
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
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 по дате отправления