Thanks,All, To Tino,I want to order by IN condition "(6,3,4,10,7)". To Sergio,my answer is "Yes". To Kenny,I think this is not the result I want to get. To Scott,In database,there are thousands of products.the select query is generated by application,and it is not sure how many product_id in condition,maybe the next query would be .........product_id in (4,26,7,8,9,23,27,54) Maybe,temp table is a solution,but that would be performance issue.
thanks 2009/6/19 Scott Marlowe <scott.marl...@gmail.com> > On Fri, Jun 19, 2009 at 3:50 AM, Tony Liao<tonyl...@yuehetone.com> wrote: > > Hi,All > > for example,I have a query as this > > select id,product_id from table_name where product_id in > > (6,3,4,10,7) order by ..... > > the results I want to get as bellow: > > id................product_id...................... > > 33...............6................................... > > 40...............6.................................. > > 12...............3.................................... > > 25...............4................................. > > 10...............4................................ > > 17...............10................................. > > 43................7................................... > > any Idea? thanks > > I take it you want the set sorted by product_id order of 6,3,4,10 ??? > > order by > case when product_id = 6 then 1 when product_id=3 then 2 when > product_id=4 then 3 when product_id=10 then 4 else product_id+1000 > end; > -- Tony Liao