conditional 'order by'

From: Eugene Pipko <eugene.pipko_at_unionbay.com>
Date: Fri, 19 Dec 2008 08:57:12 -0800
Message-ID: <34DB87F47199374280ADFD2968CDBCFA87D4CF4435@MAIL01KT.seattlepacificindustries.com>


Hi all,
I have a query that needs to be ordered by based on the second letter of the code passed in it. For instance if the code is '9F9Q' then I'd order by 'F' , then by 'H', then by any other. If the code is '7H7Q' then I'd order by 'H', then by 'F', then by any other. I know that I can do it in 2 steps, but is it possible to do in one sql statement?

Select ...
From ...
Where ....
If substr(code,2,1)='F' then
                Order by decode(code,'F',0,'H',1,2);
Elsif substr(code,2,1)='H' then
                Order by decode(code,'H',0,'F',1,2);
End if;

Thanks,

Eugene
P Please consider the environment before printing this e-mail.

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Dec 19 2008 - 10:57:12 CST

Original text of this message